士兵突擊python/Cython

首先呈現一些零散的碎片,然後再得到全貌。

編個號:

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(源)的登記上傳,支持擴展指令


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章