一文带大家了解Python、CPython、Jython还有其他各种thon
Python和CPython
当谈到Python时,一般指的是CPython。
Python实际上是一门语言规范(编程语言),即我们使用的python语法。
CPython是用C语言实现的这种语言的解释器(是一种可以执行Python代码的软件程序)。CPython将Python源码编译成CPython字节码,由虚拟机解释执行。它是标准Python实现,也是其他Python编译器的参考实现。
Python解释器工作流程
Python解释器执行代码的过程主要包括词法分析、语法分析、字节码编译、解释执行和内存管理等步骤,其中字节码编译和解释执行是最核心的部分。可以参考下图:
常用的Python编译器
除了CPython,其他常用的python编译器还包括:
Jython:Jython是一种在Java虚拟机上运行的Python编译器,将Python源代码编译为Java字节码,并在Java虚拟机中执行。它可以与Java代码无缝集成,适用于Java平台。
IronPython:IronPython运行在.NET框架上,将Python源代码编译为.NET字节码,并在.NET运行时环境中执行。它可以与.NET代码互操作,使用.NET库和功能。
PyPy:PyPy使用即时编译技术,提供高性能。它支持JIT(即时编译)和AOT(预编译)两种模式,可以根据代码特性选择合适的模式执行。
GraalPython:基于GraalVM平台的Python编译器,利用GraalVM的优化功能,提供高性能和灵活性。
Brython:将Python代码转换为Javascript代码,适用于所有Web浏览器,支持Html5/CSS3规范。
Pyjs:轻量级的Python编译器,可以从浏览器直接执行Python脚本,带有Ajax框架和Widget Set API3。
WinPython:为Windows操作系统设计,预装了一些针对数据科学和机器学习的流行库,如Numpy、Pandas和Scipy
Python和Jython
在实际工作中我们使用较多的是Python和Jython,在这里我们重点来了解一下二者的区别。
Jython和Python的区别
Python一般指的是CPython,我们这里就不多赘述了。
Jython是Python的一个Java实现,简而言之,它是在Java虚拟机(JVM)环境下运行的Python。它的语法形式看起来跟Python一样,但它可以访问Java库的全部潜力。二者的区别如下:
导入java类
Jython 最重要的特性之一是它能够在 Python 程序中导入 Java 类。 我们可以在 Jython 中导入任何 java 包或类,就像在 Java 程序中一样。 以下示例显示如何在 Python (Jython) 脚本中导入 java.util 包以声明 Date 类的对象。
from java.util import Date
d = Date()
print d
总结
Python和Jython 拥有类似的语法。
在执行过程中前者被编译成CPython字节码然后在Python虚拟机中运行;后者在执行过程中被编译成Java字节码然后在JVM中运行。
我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!
作者:测试开发Kevin