Python 与 CPython

新手上路,请多包涵

Python 和 CPython (Jython,IronPython) 有什么大惊小怪的,我不明白:

python.org 提到 CPython 是:

Python 的“传统”实现(绰号 CPython)

另一个 Stack Overflow 问题 提到:

CPython 是 Python 的默认字节码解释器,它是用 C 编写的。

老实说,我不明白这两种解释的实际含义,但我的想法是, 如果我使用 CPython,这是否意味着当我运行示例 python 代码时,它会将其编译为 C 语言,然后像使用 C 语言一样执行它代码

那么,CPython 究竟是什么?与 Python 相比,它有何不同?我是否应该使用 CPython 而不是 Python?如果是,它的优势是什么?

原文由 K DawG 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 383
2 个回答

那么什么是 CPython?

CPython 是 原始 的 Python 实现。它是您从 Python.org 下载的实现。人们称它为 CPython 是为了将其与其他后来的 Python 实现区分开来,并将语言引擎的实现与 Python 编程语言 本身区分开来。

后一部分是您困惑的来源;您需要将 Python 语言与 运行 Python 代码的任何语言分开。

CPython 恰好 是用 C 实现的。这只是一个实现细节,真的。 CPython 将您的 Python 代码(透明地)编译成字节码,并在评估循环中解释该字节码。

CPython 也是第一个实现新特性的; Python-the-language 开发以 CPython 为基础;其他实现如下。

Jython 等呢?

JythonIronPythonPyPy 是 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 解释器的代码。

原文由 Martijn Pieters 发布,翻译遵循 CC BY-SA 4.0 许可协议

您需要区分语言和实现。 Python是一种语言,

根据 维基百科,“编程语言是编写程序的符号,是计算或算法的规范”。这意味着它只是编写代码的规则和语法。另外,我们有一个 编程语言实现,在大多数情况下,它是实际的解释器或编译器。

Python 是一种语言。 CPython 是 Python 在 C 中的实现。Jython 是在 Java 中的实现,等等。

总结一下:您已经在使用 CPython(如果您从 此处 下载)。

原文由 jamylak 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏