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解释器做任何修改。

下面的这篇文章对Stackless做了比较多的介绍,但是也比较难以读懂:

本文转自UltraSQL51CTO博客,原文链接: http://blog.51cto.com/ultrasql/1707370,如需转载请自行联系原作者

python相比于c语言更静态_Python的几种实现相关推荐

  1. python相比于c语言更静态_让python成为你工作当中的加速器,超越的不只是时间,小白赶紧看过来!!!...

    对于编程语言而言,Python是纯粹的自由软件,以简洁清晰的语法和强制使用空白符进行语句缩进的特点从而深受程序员们的喜爱.比如完成一个任务的话,c语言可能要写1000行代码,Java可能要写100行, ...

  2. python相比其他程序设计语言有什么特点_python语言和其他语言的区别

    Python是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库的一门弱类型的可移植,可扩展,可嵌入的解释型编程语言.Python从设计之初就是一门面向对象的语言,它有一个重要的 ...

  3. python输出字符串的后两位_Python字符串三种格式化输出

    字符串格式化输出是python非常重要的基础语法,今天就把三种格式化输出做一个简单的总结,希望对大家有帮助. 格式化输出:内容按照一定格式要求进行输出. 1.使用占位符%输出 python2.6版本之 ...

  4. python相比c语言更动态_Python金融大数据分析

    第8章 高性能的Python 许多高性能库可以用于加速Python代码的执行: · Cython 用于合并Py由on和C语言静态编译范型. · IPython.parallel 用于在本地或者在群集上 ...

  5. python和ui设计哪个更好_Python主流IDE对比:Eric VS. PyCharm

    IDE, 全称是Integrated Development Environment,翻译过来就是集成开发环境.Python的开发从2010年5月算起,不知不觉中,到现在已经是第七个年头. 这六年里, ...

  6. python语言和sql语言的区别_Python语言与其他语言对比

    python作为一门高级编程语言,它的诞生虽然很偶然,但是它得到程序员的喜爱却是必然之路,以下是Python与其他编程语言的优缺点对比: 一:简介 1.Python 优势:简单易学,能够把用其他语言制 ...

  7. python是最好的语言表情包_Python语言学习之如何通过Python用表情包自动回复微信拍一拍...

    本篇文章主要介绍了Python语言学习之如何通过Python用表情包自动回复微信拍一拍,通过具体的内容展现,希望对Python语言的学习有所帮助. 前段时间微信上线了拍一拍功能,刚推出就被有才的网友玩 ...

  8. python是一种语言阅读答案_Python是一种________语言。

    [多选题]中国现行税制中采用的累进税率有( ). [多选题]契约型基金又称单位信托基金,其当事人包括( ). [计算题]4. 设贴现率为10%,有三项投资方案,有关资料如下:计算三个方案的现值指数. ...

  9. python中如何连接两个字符串_python中5种连接字符串的方法

    字符串是Python中常用的数据类型,在开发过程中可以对字符创进行截取并与其他字符创进行连接.本文为大家介绍了5种连接字符串的方法. 1.加号 如果有其他编程语言开发经验的人,肯定知道很多语言里面是用 ...

  10. python取列表前几个元素_Python下几种从一个序列中取出元素的方法

    使用Python进行数据处理时,有时候会有这样的操作,比如从一个列表或者numpy array中随机取出一个元素,对一个列表中的元素进行shuffle,等等.虽然这些操作也可以通过编写很简短的程序完成 ...

最新文章

  1. 在Proteus中添加标号
  2. 创建模板_UG中如何创建属于自己的编程模板界面?
  3. 10冰点还原安装不了_荣耀智慧屏X1性能有多强?荣耀智慧屏X1怎么安装第三方软件?...
  4. 大连网络推广浅谈网站过度优化的表现以及解决方法!
  5. VC/MFC如何设置对话框背景颜色
  6. SAP C4C里如何实现Sales Unit和Seller的自动determination
  7. 第四章:条件语句(if)和循环结构(while)
  8. MIK C语言面试两题
  9. jquery选择器小知识点们
  10. 9.1 正则介绍_grep(上)
  11. 团队协调办公工具比较
  12. FISCO BCOS 区块最大最长交易执行时间
  13. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_22-页面查询服务端开发-Dao-基础方法测试...
  14. (转)PMP的项目管理5大组
  15. 【微信扫码登录】以及【微信扫码支付】解决方案
  16. python批量修改图片尺寸
  17. u盘损坏怎么恢复原来数据,u盘损坏数据如何恢复
  18. 头的各个部位示意图_人体头部结构图解剖图 人体头部结构及功能
  19. 计算机辅助翻译政府工作报告,Trados辅助翻译软件在科技英语翻译中的应用
  20. 移动端APP测试总结

热门文章

  1. SSH——Hibernate简单配置
  2. 你能给我的手机推荐一款安全软件吗?
  3. MS windows下的网络访问设置经典--仅来宾
  4. 书籍-Druid实时大数据分析原理与实践
  5. 点击list view中一行内容可以在combox中显示_在后台添加新的产品/文章分类,如何在模板中显示产品列表/文章列表?如何调用分类?...
  6. python识别数字程序_Python识别处理照片中的条形码
  7. XML解析模型(完整版)
  8. CSS样式大全(转)
  9. SSD容量也不宜小,最好1T往上
  10. 编译ffmpeg:no match insn: lbu $r16,0($r5)