Python的另外几种语言实现


Posted in Python onJanuary 29, 2015

Python自身作为一门编程语言,它有多种实现。这里的实现指的是符合Python语言规范的Python解释程序以及标准库等。这些实现虽然实现的是同一种语言,但是彼此之间,特别是与CPython之间还是有些差别的。

下面分别列出几个主要的实现。

1.CPython:这是Python的官方版本,使用C语言实现,使用最为广泛,新的语言特性一般也最先出现在这里。

CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。

2.Jython:这是Python的Java实现,相比于CPython,它与Java语言之间的互操作性要远远高于CPython和C语言之间的互操作性。

在Python中可以直接使用Java代码库,这使得使用Python可以方便地为Java程序写测试代码,更进一步,可以在Python中使用Swing等图形库编写GUI程序。

Jython会将Python代码动态编译成Java字节码,然后在JVM上运行转换后的程序,这意味着此时Python程序与Java程序没有区别,只是源代码不一样。

在Python 中写一个类,像使用Java 类一样使用这个类是很容易的事情。

你甚至可以把Jython 脚本静态地编译为Java 字节码。

示例代码:

from java.lang import System
System.out.write('Hello World!\n')

3.Python for .NET:它实质上是CPython实现的.NET托管版本,它与.NET库和程序代码有很好的互操作性。

4.IronPython:不同于Python for .NET,它是Python的C#实现,并且它将Python代码编译成C#中间代码(与Jython类似),然后运行,它与.NET语言的互操作性也非常好。

5.PyPy:Python的Python实现版本,原理是这样的,PyPy运行在CPython(或者其它实现)之上,用户程序运行在PyPy之上。它的一个目标是成为Python语言自身的试验场,因为可以很容易地修改PyPy解释器的实现(因为它是使用Python写的)。

6.Stackless:CPython的一个局限就是每个Python函数调用都会产生一个C函数调用。 这意味着同时产生的函数调用是有限制的,因此Python难以实现用户级的线程库和复杂递归应用。一旦超越这个限制,程序就会崩溃。Stackless的Python实现突破了这个限制,一个C栈帧可以拥有任意数量的Python栈帧。这样你就能够拥有几乎无穷的函数调用,并能支持巨大数量的线程。Stackless唯一的问题就是它要对现有的CPython解释器做重大修改。所以它几乎是一个独立的分支。另一个名为Greenlets的项目也支持微线程。它是一个标准的C扩展,因此不需要对标准Python解释器做任何修改。

Python 相关文章推荐
pycharm 使用心得(二)设置字体大小
Jun 05 Python
python实现无证书加密解密实例
Oct 27 Python
12步教你理解Python装饰器
Feb 25 Python
浅析python中SQLAlchemy排序的一个坑
Feb 24 Python
Python实现基本数据结构中栈的操作示例
Dec 04 Python
详谈Numpy中数组重塑、合并与拆分方法
Apr 17 Python
Python FTP两个文件夹间的同步实例代码
May 25 Python
Python Matplotlib库安装与基本作图示例
Jan 09 Python
详解如何设置Python环境变量?
May 13 Python
pygame库实现俄罗斯方块小游戏
Oct 29 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
Python实现Excel自动分组合并单元格
Feb 22 Python
python中使用xlrd、xlwt操作excel表格详解
Jan 29 #Python
Python中实现常量(Const)功能
Jan 28 #Python
Python使用random和tertools模块解一些经典概率问题
Jan 28 #Python
Python中的异常处理学习笔记
Jan 28 #Python
Python中集合类型(set)学习小结
Jan 28 #Python
Python中使用装饰器和元编程实现结构体类实例
Jan 28 #Python
Python实现Const详解
Jan 27 #Python
You might like
php实现XML和数组的相互转化功能示例
2017/02/08 PHP
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
javascript 判断整数方法分享
2014/12/16 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
vue-cli设置publicPath小记
2020/04/14 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
详解Swift中属性的声明与作用
2016/06/30 Python
python批量制作雷达图的实现方法
2016/07/26 Python
基于Python 的进程管理工具supervisor使用指南
2016/09/18 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
python实现将json多行数据传入到mysql中使用
2019/12/31 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
jupyter 添加不同内核的操作
2021/02/06 Python
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
优秀毕业生就业推荐信
2014/05/22 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
领导干部对照检查材料
2014/08/24 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
监护人证明
2015/06/19 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
Apache Hudi数据布局黑科技降低一半查询时间
2022/03/31 Servers