集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 3722|回复: 6

python学习: Python的几种实现

[复制链接]
晓灰灰 发表于 2018-12-4 11:37:55 | 显示全部楼层 |阅读模式
        大家好,又到了每日学习的时间了,最近博主在和python打交道,今天我们来聊一聊Python的几种实现.

        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做了比较多的介绍,但是也比较难以读懂:
        可爱的 Python:Python实现内幕
        链接:https://www.ibm.com/developerworks/cn/linux/sdk/python/python-7/

        今天就聊到这里,各位,加油.
 楼主| 晓灰灰 发表于 2018-12-4 11:38:06 | 显示全部楼层
python学习: Python的几种实现
zhangyukun 发表于 2018-12-5 09:08:58 | 显示全部楼层
python学习: Python的几种实现
 楼主| 晓灰灰 发表于 2018-12-5 11:52:21 | 显示全部楼层
python学习: Python的几种实现
 楼主| 晓灰灰 发表于 2018-12-6 16:14:22 | 显示全部楼层
python学习: Python的几种实现
 楼主| 晓灰灰 发表于 2018-12-12 13:43:40 | 显示全部楼层
python学习: Python的几种实现
 楼主| 晓灰灰 发表于 2018-12-26 18:30:39 | 显示全部楼层
python学习: Python的几种实现
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-23 15:22 , Processed in 0.059778 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表