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

python.org提到CPython是:

Python的“传统”实现(昵称为CPython)

还有一个Stack Overflow问题提到:

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

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

那么到底什么是CPython,它与python相比有什么不同,我应该使用CPython而不是python,如果是的话,它的优点是什么?


当前回答

你应该知道CPython并不真正支持多线程(它支持,但不是最优的),因为全局解释器锁。它也没有递归的优化机制,并且有许多其他实现和库试图填补的限制。

你应该看看python wiki上的这个页面。

看看本页上的代码片段,它会让你很好地了解解释器是什么。

其他回答

Python是一种语言:一组可用于编写程序的规则。这种语言有几种实现。

不管你采用什么实现,它们做的事情几乎是一样的:获取程序的文本并解释它,执行它的指令。它们都不会将您的代码编译成C或任何其他语言。

CPython是最初的实现,用C语言编写(“CPython”中的“C”部分指的是用来编写Python解释器本身的语言)。

Jython是同一种语言(Python),但使用Java实现。

IronPython解释器是用c#编写的。

还有PyPy——一个用Python编写的Python解释器。你自己选吧。

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

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

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

总而言之:您已经在使用CPython(如果从这里下载的话)。

Cpython是Python的默认实现,当我们从它的官方网站下载Python时,它就会出现在我们的系统中。

Cpython将扩展名为.py的python源代码文件编译为一个中间字节码,该字节码通常被赋予.pyc扩展名,并由Cpython虚拟机执行。Python的这种实现提供了与Python包和C扩展模块的最大兼容性。

还有许多其他的Python实现,如IronPython, Jython, PyPy, CPython, Stackless Python等等。

本文详细解释了Python的不同实现之间的区别。就像这篇文章说的:

首先要意识到“Python”是一个接口。有一个 Python应该做什么以及它应该如何表现(如 任何接口)。并且有多种实现(如 任何接口)。 要意识到的第二件事是“解释”和“编译” 实现的属性,而不是接口的属性。

你应该知道CPython并不真正支持多线程(它支持,但不是最优的),因为全局解释器锁。它也没有递归的优化机制,并且有许多其他实现和库试图填补的限制。

你应该看看python wiki上的这个页面。

看看本页上的代码片段,它会让你很好地了解解释器是什么。