关于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解释器。你自己选吧。

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

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

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

implementation是指使用什么语言来实现Python,而不是如何实现Python代码。使用CPython的优点是C运行时的可用性以及与C/ c++的容易集成。

所以CPython最初是使用c实现的。原始实现的其他分支使Python能够利用Java (JYthon)或。net Runtime (IronPython)。

根据您使用的实现,库的可用性可能会有所不同,例如,在Jython中不可用Ctypes,因此任何使用Ctypes的库都不能在Jython中工作。类似地,如果你想使用Java类,你不能直接从CPython中这样做。你要么需要一个胶水(JEPP),要么需要使用Jython (Python的Java实现)

编程语言实现是执行计算机程序的系统。

编程语言实现有两种一般方法:

解释:解释器将某种语言的程序作为输入,并在某些机器上执行用该语言编写的操作。 编译:编译器将某种语言的程序作为输入,并将该程序翻译成另一种语言,该语言可作为另一解释器或另一编译器的输入。

Python是一种解释性高级编程语言,由Guido van Rossum于1991年创建。

CPython是Python计算语言的参考版本,它也是由Guido van Rossum创建的C语言编写的。

Python实现的其他列表

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

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

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

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