关于Python和CPython(Jython,IronPython)有什么大惊小怪的,我不明白:
python.org提到CPython是:
The "traditional" implementation of Python (nicknamed CPython)
yet another Stack Overflow question提到:
CPython is the default byte-code interpreter of Python, which is written in C.
老实说,我不明白这两种解释的实际含义,但我认为,如果我使用C python,这意味着当我运行一个示例python代码时,它会将其编译成C语言,然后像执行C代码一样执行它
那么CPython到底是什么,与python相比有什么不同,我应该使用CPython而不是python,如果是,它的优点是什么?
这个article彻底解释了Python不同实现之间的区别。正如文章所说:
您需要区分语言和实现。Python是一种语言
根据Wikipedia,“编程语言是编写程序的符号,是计算或算法的规范”。这意味着它只是编写代码的规则和语法。另外,我们还有一个programming language implementation,在大多数情况下,它是实际的解释器或编译器。
Python是一种语言。 C Python是Python在C中的实现,Jython是Java中的实现,以此类推。
总而言之:您已经在使用CPython(如果您是从here下载的)。
那么什么是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
因此,C Python本身不会将Python代码转换为C。相反,它运行一个解释器循环。这里的是一个将Python-ish代码转换为C的项目,这个项目被称为Cython。Cython为Python语言添加了一些扩展,并允许您将代码编译为C扩展,这些代码将插入到CPython解释器的中。
相关问题 更多 >
编程相关推荐