【有书共读21】Python编程之美 01
python是一门当前流行的编程语言。
目前python有两个版本的解析器:python2和python3。如何选择解析器是一个命题:
- 在python3之前,python2一直是标准选择;
- python3的设计,没有完全兼容python2,在设计上与python2存在一些差异。
如何选择解析器的版本:
- 如果是新手或者不知道选择哪一个的话,建议选择python3;
- 若有特殊原因,如影响系统稳定性、性能或者依赖的软件限制则使用python2;
在选择了解析器后,则需要根据所需,选择python的实现了。不同的实现,其兼容性、运行效率各有不同。
CPython:是标准Python,是其他python的参考性实现。通常提的“Python”,一般是指cpython。cpython由C编写,它将Python代码编译成cpython字节码,由虚拟机解释执行。cpython对python包和C扩展模块的兼容性最好。
若是编写开源python,如果想覆盖更多的潜在用户,则使用cpython;如果python包依赖与C扩展,最好选择cpython。
Stackless:是在cpython上的优化;主要将python解析器与调用栈解耦,从而实现改变代码执行次序。stackless引入了tasllet,它可以封装函数,将其变为"微线程"。
Pypy:是用rpython实现的python解析器。它可以推断出变量的类型,从而实现一些优化策略。它的特色是JIT编译器,支持多种编译器后端。pypy的目标在于提升性能的同时尽可能最大程度兼容cpython。
如果想提升python性能,可以考虑pypy。
Jython:可以将python代码编辑为java字节码,再由JVM执行。jython能够像python一样导入并使用任意java类。
如果需要与java代码库交互,或基于jvm编写python代码,则选择jython。
IronPython:专为.net框架准备的python实现。可同时使用python和.net框架的代码库。
visual studio的python工具集将ironpython集成到visual studio开发环境,因此在Windows平台开发,可以考虑ironpython。
PythonNet:近乎无缝地将.net中间语言运行集成到python环境中。pythonnet使非Windows操作系统能够在.net框架中使用。与ironpython使用方式相反,可以同时存在。两者是一种互补关系。
Skulpt:是python的一个JavaScript实现。未完全移植到cpython标准库。可实现简单的math、random、turtle、image、unittest、time、urllib、dom等。主要用于教学。
MicroPython:是python3的一个实现。主要在微控制器上运行进行了针对性优化。不仅包含python标准库的模块,还提供了硬件细节、内存信息、网络访问等信息。
