Python 和 CPython (Jython,IronPython) 有什么大惊小怪的,我不明白:
python.org 提到 CPython 是:
Python 的“传统”实现(绰号 CPython)
CPython 是 Python 的默认字节码解释器,它是用 C 编写的。
老实说,我不明白这两种解释的实际含义,但我的想法是, 如果我使用 CPython,这是否意味着当我运行示例 python 代码时,它会将其编译为 C 语言,然后像使用 C 语言一样执行它代码
那么,CPython 究竟是什么?与 Python 相比,它有何不同?我是否应该使用 CPython 而不是 Python?如果是,它的优势是什么?
原文由 K DawG 发布,翻译遵循 CC BY-SA 4.0 许可协议
那么什么是 CPython?
CPython 是 原始 的 Python 实现。它是您从 Python.org 下载的实现。人们称它为 CPython 是为了将其与其他后来的 Python 实现区分开来,并将语言引擎的实现与 Python 编程语言 本身区分开来。
后一部分是您困惑的来源;您需要将 Python 语言与 运行 Python 代码的任何语言分开。
CPython 恰好 是用 C 实现的。这只是一个实现细节,真的。 CPython 将您的 Python 代码(透明地)编译成字节码,并在评估循环中解释该字节码。
CPython 也是第一个实现新特性的; Python-the-language 开发以 CPython 为基础;其他实现如下。
Jython 等呢?
Jython 、 IronPython 和 PyPy 是 Python 编程语言的当前“其他”实现;它们分别用 Java、C# 和 RPython(Python 的一个子集)实现。 Jython 将您的 Python 代码编译为 Java 字节码,因此您的 Python 代码可以在 JVM 上运行。 IronPython 允许您在 Microsoft CLR 上运行 Python。 PyPy 是在 Python(的一个子集)中实现的,它使您可以比 CPython 更快地运行 Python 代码,这理所当然地会让您大吃一惊。 :-)
实际上编译为C
所以 CPython 不会自己 将你的 Python 代码翻译成 C。相反,它运行一个解释器循环。 有 一个项目将 Python-ish 代码翻译成 C, 叫做 Cython 。 Cython 为 Python 语言添加了一些扩展,并允许您将代码编译为 C 扩展,即 插入 CPython 解释器的代码。