首先呈现一些零散的碎片,然后再得到其全貌。
编个号:
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(源)的登记上传,支持扩展指令