士兵突击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(源)的登记上传,支持扩展指令


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