Python与Cpython

关于Python和CPython(Jython,IronPython)的大惊小怪,我不明白:

python.org提到CPython是:

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

另一个Stack Overflow问题提到:

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

老实说,我没有得到这些解释实际上意味着什么,但我认为是什么,如果我使用CPython,这意味着当我运行一个示例python代码时,它将它编译为C语言,然后执行它,就好像它是C码

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


那么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解释器中。


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

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

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

总结:你已经在使用CPython(如果你是从这里下载的)。


本文深入解释了Python不同实现之间的区别。 就像文章所说:

首先要意识到的是'Python'是一个接口。 有一个Python应该做什么以及它应该如何表现的规范(与任何接口一样)。 并有多个实现(与任何接口一样)。

第二件事要认识到'解释'和'编译'是实现的属性,而不是接口。

链接地址: http://www.djcxy.com/p/1535.html

上一篇: Python vs Cpython

下一篇: How do greenlets work?