首先呈現一些零散的碎片,然後再得到其全貌。
編個號:
a1: pytho的解釋器是用c寫的開源軟件,編譯器是用python寫的,因此python中c和python大概各佔一半。
a2: 將python集成到emacs IDE形成python IDE(集成開發環境)。
a3: python可以綁定c++源代碼。
a4: cython將增加了cdef extern from語法的python代碼編譯爲c庫,並能爲python直接調用,而如果將後綴名設爲.pyx,則可省去顯示編譯的過程。
如果將非python的東西隔離,可以採用專門的類型聲明文件,此類工具PyAMF,PyYAML。
a5: python的GIL(全局鎖),不適合編寫多核應用,而出現了多進程模塊multiprocessing。
GIL使得 python虛擬機任何時間只有一個線程運行,一般是鎖IO和分屍調度的結果。而多核芯片其實可以運行多個不相關的線程,GIL不具備將job調度到多核的能力。
a6: generator,能夠從yield處返回值。
a7: @作爲函數的decerator(其實是重載了__call__和__init__的一個類)
a8: 入口一般寫爲if __name__ == "__main__":
main()
python -m 模塊名
a9: paster工具能夠打包和項目
需要包括一個針對包和項目的setup.py的安裝腳本
公司項目專用的模板corp-prj-setup.cfg
a10: 使用setuptools,pip和yolk安裝,管理包
python對這些工具的支持是distutils標準庫:支持建包,裝包,打包發佈,支持PyPI(源)的登記上傳,支持擴展指令