Python有几种不同版本的实现方式,因为它们正在积极开发中,版本会定期发布。目前,有四种产品完备的、强大和稳定的主流Python实现:
CPython是常规的老版本Python,也是我们通常所称的Python。它既是编译器也是解释器,有自己的一套全部用标准C语言编写的标准程序包和模块。该版本可以直接用于所有流行的当前平台。大多数的Python第三方程序包和库与此版本兼容。
PyPy是Python实现的一个更快实现,它使用JIT编译器来使代码运行速度比CPython实现的速度更快——有时提供达10x-100x的加速。PyPy还有更高的内存效率,支持greenlet和stackless从而具有高并行性和并发性。
Jython是Java平台的Python实现,它支持Java虚拟机(Java Virtual Machine,JVM),适用于任何版本的Java(版本最好是7以上)。通过使用Jython,你可以用所有类型的Java库、包和框架来编写代码。当你更多地了解Java语法和Java中广泛使用的OOP原则(如类、对象和接口)时,它的效果最好。
IronPython是流行的Microsoft .NET框架的Python实现,也称为通用语言运行时(Common Language Runtime,CLR)。你可以使用IronPython中的所有Microsoft CLR库和框架,即使你实质上并不需要在C#中编写代码,它也有助于你更多地了解C#的语法和构造,以有效地使用IronPython。
我们首先建议你使用默认的Python版本,即CPython实现,只有当你真的有兴趣与其它语言(如C#和Java)进行接口并需要在代码库中使用它们时,才可以去尝试其它版本。
关于使用何种版本的Python尚有许多争论。最好的方法是你要考虑解决的问题以及需要使用的完整软件生态系统,从库、依赖关系和架构开始到实现和部署——同时也要考虑重用现有的旧代码库。
如前所述,两个主要的Python版本是2.x系列和3.x系列。它们是非常相似的,但是在3.x版本中出现了几个向后不兼容的变化,这导致在使用2.x的人和使用3.x的人之间产生了巨大迁移。PyPI上的大多数遗留代码和大部分的Python包都是在Python 2.7.x中开发的,因为所需的工作量不会很小,许多程序包的所有者没有时间或意愿将其将所有代码库移植到Python 3.x。下面是3.x系列中的一些变化:
默认情况下,所有文本字符串均为Unicode。
print和exec现在是函数,不再是语句。
range()返回一个内存高效的iterable,而不再是一个列表。
修改了类的风格。
基于惯例和类型冲突进行了库和名称变更。
要了解更多Python 3.0所引入的变更情况,请查看https://docs.python.org/3/whatsnew/3.0.html,上面的官方文档列出了变更。如果你将代码从Python 2移植到Python 3,关于什么变化会破坏你的代码,这个链接应该给你一个很好的解读。
对于选择哪个版本的问题,对此并没有绝对的答案。它纯粹取决于你正在试图解决的问题,现有代码和具有的基础设施,将来如何维护代码以及所有必要的依赖关系。
如果你正在开始一个全新项目,也非常清楚你并不需要任何仅依赖于Python 2.x的外部程序包和库,那么你可以继续使用Python 3.x并启动系统开发。但是,如果你有很多依赖于外部的程序包,并且可能会破坏Python 3.x或仅仅适用于Python 2.x,那么你就别无选择,只能坚持使用Python 2.x了。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试