关于Python和CPython (Jython,IronPython)有什么大惊小怪的,我不明白:
python.org提到CPython是:
Python的“传统”实现(昵称为CPython)
还有一个Stack Overflow问题提到:
CPython是Python的默认字节码解释器,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语言开发以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代码转换为C语言,这个项目叫做Cython。Cython为Python语言添加了一些扩展,并允许您将代码编译为C扩展,即插入到CPython解释器中的代码。
Python是一种语言:一组可用于编写程序的规则。这种语言有几种实现。
不管你采用什么实现,它们做的事情几乎是一样的:获取程序的文本并解释它,执行它的指令。它们都不会将您的代码编译成C或任何其他语言。
CPython是最初的实现,用C语言编写(“CPython”中的“C”部分指的是用来编写Python解释器本身的语言)。
Jython是同一种语言(Python),但使用Java实现。
IronPython解释器是用c#编写的。
还有PyPy——一个用Python编写的Python解释器。你自己选吧。