各种Python实现之间的区别
大多数开发人员都知道Python,无论其系统中的Python是如何实现的。因此,我所说的“Python”是什么意思,是指Python的抽象接口吗?我们是指CPython,即常见的Python实现(而不是Cython)吗?还是我们完全指的是其他东西?或者我们是指Jython或IronPython或PyPy。
尽管上述技术通常都有相同的名称和引用,但其中一些技术的用途完全不同。
我们可以将Python看作是一种可以以许多不同方式实现的语言规范。
在本教程中,我们将介绍以下Python实现方法-
- CPython
- IronPython
- Jython
- PyPy
CPython
CPython是使用C语言实现的“Python”语言。Python是一种解释型编程语言。因此,Python程序员需要解释器将Python代码转换为机器代码。而Cython是一种编译型编程语言。Cython程序可以直接由底层计算机的CPU执行,而无需使用任何解释器。
IronPython
IronPython是与.NET紧密集成的Python编程语言的开源实现。IronPython可以使用.NET和Python库,其他.NET语言也可以轻松使用Python代码。
IronPython实现使用.NET虚拟机,即公共语言运行时(CLR)。它是用C#编写的。IronPython使用.NET框架,并通过此框架,.NET语言可以轻松高效地使用Python代码。
现有的.NET开发人员还可以将IronPython用作快速而表达力强的脚本语言,用于嵌入、测试或从头开始编写新应用程序。
Jython
正如其名称所示,Jython是可以在Java平台上运行的Python实现。Jython项目提供了Python在Java中的实现,为Python带来了在JVM上运行的好处并可以访问由Java编写的类。与CPython相比,Jython运行速度较慢。Jython的实现可以在商业和非商业用途下免费使用。
Jython提供了一个交互式解释器,可以用于与Java包或正在运行的Java应用程序进行交互。
PyPy
PyPy是用Python编写的Python编程语言的实现。解释器是用RPython编写的(RPython本身是Python的一个子集)。平均而言,PyPy比CPython要快4.5倍。
PyPy与现有的Python代码高度兼容。它支持cffi、cppyy,并且可以运行流行的Python库,如twisted和django。通过cextension兼容性层,它还可以运行NumPy、Scikit-learn等。