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调用java的Webservice示例
Mar 10 Python
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
Jun 10 Python
Python查找第n个子串的技巧分享
Jun 27 Python
对pandas写入读取h5文件的方法详解
Dec 28 Python
Python函数中不定长参数的写法
Feb 13 Python
Django 多环境配置详解
May 14 Python
Django之提交表单与前后端交互的方法
Jul 19 Python
在django中实现页面倒数几秒后自动跳转的例子
Aug 16 Python
django-crontab 定时执行任务方法的实现
Sep 06 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
python 实现体质指数BMI计算
May 26 Python
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
Jun 03 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实现MVC
2016/03/02 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
豆瓣网的jquery代码实例
2008/06/15 Javascript
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
javascript 跳转代码集合
2009/12/03 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
Python 列表list使用介绍
2014/11/30 Python
python模块之time模块(实例讲解)
2017/09/13 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
关于Python-faker的函数效果一览
2019/11/28 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
项目合作计划书
2014/01/09 职场文书
酒店大堂副理的职责范文
2014/02/13 职场文书
幼儿园招生广告
2014/03/19 职场文书
司仪主持词两篇
2014/03/22 职场文书
献爱心活动总结
2014/05/07 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
公司总经理任命书
2014/06/05 职场文书
2014年社区个人工作总结
2014/12/02 职场文书
销售经理助理岗位职责
2015/04/13 职场文书