Python各种实现之间的区别?
大多数开发者都知道 Python,无论他们的系统中实现了哪个 Python 版本。那么,“Python” 指的是什么?是抽象的接口吗?是指常用的 Python 实现 CPython(而不是 Cython)吗?或者是指其他东西?或者是指 Jython、IronPython 或 PyPy?
虽然上述技术名称常用且经常被提及,但其中一些技术具有完全不同的用途。
我们可以将 Python 视为一种可以用多种不同方式实现的语言规范。
在本教程中,我们将介绍以下 Python 实现:
- CPython
- IronPython
- Jython
- PyPy
CPython
CPython 是用 C 语言实现的“Python”语言。Python 是一种解释型编程语言。因此,Python 程序员需要解释器将 Python 代码转换为机器代码。而 Cython 是一种编译型编程语言。Cython 程序可以直接由底层计算机的 CPU 执行,无需任何解释器。
IronPython
IronPython 是 Python 编程语言的一种开源实现,与 .NET 紧密集成。IronPython 可以使用 .NET 和 Python 库,其他 .NET 语言也可以同样轻松地使用 Python 代码。
IronPython 实现使用 .Net 虚拟机,即公共语言运行时 (CLR)。它是用 C# 编写的。IronPython 使用 .NET 框架,通过它,.NET 语言可以轻松高效地使用 Python 代码。
现有的 .NET 开发人员也可以将 IronPython 作为一种快速且表达力强的脚本语言,用于嵌入、测试或从头编写新的应用程序。
Jython
Jython,顾名思义,是在 Java 平台上运行的 Python 实现。Jython 项目提供了在 Java 中实现的 Python,为 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。它还可以通过 c 扩展兼容性层运行 NumPy、Scikit-learn 等。