《Python核心编程(第二版)》—— 1.8 其他实现
本节书摘来自异步社区《Python核心编程(第二版)》一书中的第1章,第1.8节,作者[美]Wesley J. Chun,宋吉广 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.8 其他实现标准版本的Python是用C来编译的,又被称为Cpython。除此之外,还有一些其他的Python实现。我们将在下面讲述些实现,除了本书中提到的这些实现以外,下面的网址还有更多的实现版本。
http://python.org/dev/implementations.html
Java
我们在上一节中曾经提到,还有一个可以用的 Python解释器是完全由Java写成的,名为Jython。尽管两种解释器之间存在一些细微的差别,但是它们非常接近,而且启动环境也完全相同。那Jython又有哪些优势呢?Jython...
只要有Java虚拟机,就能运行Jython。 拥有访问Java包与类库的能力。 为Java开发环境提供了脚本引擎。 能够很容易的测试Java类库。 提供访问Java原生异常处理的能力。 继承了JavaBeans特性和内省能力。 鼓励Python到Java的开发(反之亦然)。 GUI开发人员可以访问Java的AWT/Swing库。 利用了Java原生垃圾收集器(CPython未实现此功能)。对 Jython 进行详细论述,超出了本文的范围,不过网上有非常多的Jython信息。Jython目前仍然在不断开发之中,不时会增加新的特性。你可以通过访问Jython的网站得到更多有用的信息。
http://jython.org
.NET/Mono
现在已经有一个名为IronPython的Python实现,它是用C# 语言完成的,它适用的环境是.NET和Mono。你可以在一个.NET应用程序中整合IronPython 解释器来访问.NET对象。ronPython的扩展可以用C#或VB.NET语言编写。除此之外,还有一种名为Boo的.NET/Mono语言。你可以在下面的网址获得更多关于IronPython和Boo语言的信息。
http://codeplex.com/Wiki/View.aspx?ProjectName=IronPython
http://boo.codehaus.org/
Stackless
CPython的一个局限就是每个Python函数调用都会产生一个C函数调用(从计算机科学的角度来说,我们在讨论栈帧)。这意味着同时产生的函数调用是有限制的,因此Python难以实现用户级的线程库和复杂递归应用。一旦超越这个限制,程序就会崩溃。你可以通过使用一个“stackless”的Python实现来突破这个限制,一个C栈帧可以拥有任意数量的Python栈帧,这样你就能够拥有几乎无穷的函数调用,并能支持巨大数量的线程,这个Python实现的名字就叫……Stackless(嘿嘿,很惊讶吗?)
Stackless唯一的问题就是它要对现有的CPython 解释器做重大修改,所以它几乎是一个独立的分支。另一个名为Greenlets 的项目也支持微线程,它是一个标准的C扩展,因此不需要对标准Python解释器做任何修改。通过以下网址你能了解更多信息。
http://codespeak.net/py/current/doc/greenlet.html
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- 「Python 编程」编码实现网络请求库中的 URL 解析器
- Python学习--11 面向对象高级编程
- Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法
- Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件
- NLP之TEA:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码
- Python:利用python编程将上海十六区,2020年5月份房价实时地图(数据来源房天下)进行柱状图、热图可视化
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(计算器简单功能)
- 成功解决:将后缀.pyx格式文件(linux环境)编译成pyd文件(windows环境下)实现python编程加载或导入
- Python编程专属骚技巧3
- Python 实现个人博客系统(附零基础python学习资料)
- python网络编程例子
- 「Python 编程」编码实现网络请求库中的 URL 解析器
- Python编程:关于函数
- Python编程:python面向对象
- Python编程:json序列化python对象
- Python编程:Flask-BasicAuth实现Authentication登录认证
- Python编程:elasticsearch库操作Elasticsearch
- Python编程:封装paramiko模块实现便捷的远程登录
- Python编程:利用上下文管理器管理MySQL的链接对象
- Python编程:scrapy中使用logging,日志出现多次
- python基础===一行 Python 代码实现并行(转)
- 【python】Python实现网络爬虫demo实例
- 〖Python自动化办公篇⑲〗 - python实现邮件自动化 - 邮件发送
- python零基础学编程:Python是什么?为什么Python这么火,学Python能干什么?