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 相关文章推荐
利用Python学习RabbitMQ消息队列
Nov 30 Python
在windows下快速搭建web.py开发框架方法
Apr 22 Python
python matplotlib中文显示参数设置解析
Dec 15 Python
python2.7实现爬虫网页数据
May 25 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
在python中按照特定顺序访问字典的方法详解
Dec 14 Python
python批量创建指定名称的文件夹
Mar 21 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
Oct 14 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
django使用F方法更新一个对象多个对象字段的实现
Mar 28 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
基于python和flask实现http接口过程解析
Jun 15 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
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
PHP实现统计在线人数功能示例
2016/10/15 PHP
php 猴子摘桃的算法
2017/06/20 PHP
Javascript 事件流和事件绑定
2009/07/16 Javascript
TBCompressor js代码压缩
2011/01/05 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
Vue波纹按钮组件制作
2018/04/30 Javascript
vue实现与安卓、IOS交互的方法
2018/11/02 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
Python的Urllib库的基本使用教程
2015/04/30 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
Python学习之用pygal画世界地图实例
2017/12/07 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
Python实现自定义顺序、排列写入数据到Excel的方法
2018/04/23 Python
python中使用print输出中文的方法
2018/07/16 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
python实现网页录音效果
2020/10/26 Python
python 实现Requests发送带cookies的请求
2021/02/08 Python
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
计算机系毕业生推荐信
2013/11/06 职场文书
数学专业毕业生自荐信
2013/11/10 职场文书
2014年工程工作总结
2014/11/25 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
小学体育队列队形教学反思
2016/02/16 职场文书
vue前端工程的搭建
2021/03/31 Vue.js
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫