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.

老实说,我不明白这两种解释实际上意味着什么,但我想的是,if I use CPython does that mean when I run a sample python code, it compiles it to C language and then executes it as if it were C code

So what exactly is CPython and how does it differ when compared with python and should I probably use CPython over Python and if so what are its advantages?

推荐答案

那么什么是CPython?

CPython是original Python实现.它是您从Python下载的实现.组织.人们称之为CPython是为了将其与其他后来的Python实现区分开来,并将语言引擎的实现与Python programming language本身区分开来.

后一部分是你困惑的根源;您需要将Python语言与Python代码分开.

CPythonhappens将用C实现,这只是一个实现细节,真的.CPython将Python代码编译成字节码(透明地),并在求值循环中解释该字节码.

CPython也是第一个实现新功能的公司;Python语言开发以CPython为基础;随后还有其他实现.

Jython等呢.?

IronPythonPyPy是当前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相关问答推荐

使用Keras的线性回归参数估计

2D空间中的反旋算法

如何过滤包含2个指定子字符串的收件箱列名?

通过pandas向每个非空单元格添加子字符串

Python虚拟环境的轻量级使用

Python中绕y轴曲线的旋转

"使用odbc_connect(raw)连接字符串登录失败;可用于pyodbc"

我的字符串搜索算法的平均时间复杂度和最坏时间复杂度是多少?

如何使用Numpy. stracards重新编写滚动和?

判断solve_ivp中的事件

使用Python查找、替换和调整PDF中的图像'

python中csv. Dictreader. fieldname的类型是什么?'

如何检测鼠标/键盘的空闲时间,而不是其他输入设备?

使用Openpyxl从Excel中的折线图更改图表样式

如何从pandas DataFrame中获取. groupby()和. agg()之后的子列?

你能把函数的返回类型用作其他地方的类型吗?'

Regex用于匹配Python中逗号分隔的AWS区域

Django更新视图未更新

我可以同时更改多个图像吗?

Python:在cmd中添加参数时的语法