《Python核心编程(第二版)》—— 1.8 其他实现

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://stackless.com

http://codespeak.net/py/current/doc/greenlet.html

时间: 2024-09-21 17:46:21

《Python核心编程(第二版)》—— 1.8 其他实现的相关文章

拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录

目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高级主题 两大部分,以 Python 2.x 作为主要演示版本,涵盖的知识面广,知识点较齐全,代码多且好理解,但对 Python 版本特性的内容太久远,不合时宜. 整体来说 Python 核心 部分是主要内容,高级主题 部分作为应用扩展内容.后半部分篇幅较短,内容不够深入,只到了解的层面,好在横向够广(每一个主

Python核心编程学习笔记之映射类型(上)

 根据核心编程第二版学习Python3.x的内容,可能有些欠缺,有些方法在3.x中已经不提供了,就暂时先略过了.等以后再对比2.x和3.x的区别,作下笔记吧 1.    Python中字典的定位: a)      字典是python中唯一的映射类型,通常被认为是可变的哈希表. b)     字典对象是可变的,能存储任意多个python对象. c)      字典是Python中最强大的数据类型之一 2.    字典(dict)和序列类型容器类(列表和元组)的区别: a)      存储和访问数据

《Python核心编程(第二版)》——导读

前 言 欢迎走进Python核心编程 我们很高兴能帮你尽快并尽可能深入地学习Python.掌握语法是本书的一个目标,不管怎样,我们都坚信,哪怕是一个初学者,只要他能掌握Python的运作机理,他就不再仅仅是用Python"编写",而是能开发出更高效的Python应用程序.但是你知道,并不是掌握了一门语言的语法就能让你立刻登堂入室. 在本书中,你能发现许多可以立即上手的例子.为了巩固基础,你还会在每章的末尾找到有趣又富有挑战性的习题.这些初级和中级水平的习题可以检验你的学习效果,并且提升

python核心编程--笔记(不定时跟新)

的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找python路径 1.4 –v   冗余输出(导入语句详细追踪) 1.5 –m mod 将一个模块以脚本形式运行 1.6 –Q opt 除法选项(参阅文档) 1.7 –c cmd 运行以命令行字符串心事提交的python脚本 1.8 file   以给定的文件运行python脚本 2 _在解释器中表示最后一个表达式的值. 3 prin

《Python核心编程(第二版)》——1.3 特点

1.3 特点 尽管Python已经流行了超过15年,但是一些人仍旧认为相对于通用软件开发产业而言,它还是个新丁.我们应当谨慎地使用"相对"这个词,因为"网络时代"的程序开发,几年看上去就像几十年. 当人们询问:"什么是Python?"的时候,很难用任何一个具象来描述它.人们更倾向于一口气不加思索地说出他们对Python的所有感觉,Python是____(请填写),这些特点究竟又是什么呢?为了让你能知其所以然,我们下面会对这些特点进行逐一地阐释.

《Python核心编程(第二版)》——第1部分 Python核心 第1章 欢迎来到Python世界 1.1 什么是Python

第1部分 Python核心 第1章 欢迎来到Python世界 本章主题 什么是Python Python的起源 Python的特点 下载Python 安装Python 运行Python Python文档 比较Python(与其他语言的比较) 其他实现 开篇将介绍一些Python的背景知识,包括什么是Python.Python的起源和它的一些关键特性.一旦你来了兴致,我们就会向你介绍怎样获得Python,以及如何在你的系统上安装并运行它.本章最后的练习将会帮助你非常自如地使用Python,包括使用

《Python核心编程(第3版)》——1.3 正则表达式和Python语言

1.3 正则表达式和Python语言 在了解了关于正则表达式的全部知识后,开始查看Python当前如何通过使用re模块来支持正则表达式,re模块在古老的Python 1.5版中引入,用于替换那些已过时的regex模块和regsub模块--这两个模块在Python 2.5版中移除,而且此后导入这两个模块中的任意一个都会触发ImportError异常. re模块支持更强大而且更通用的Perl风格(Perl 5风格)的正则表达式,该模块允许多个线程共享同一个已编译的正则表达式对象,也支持命名子组. 1

《Python核心编程(第二版)》——1.5 运行Python

1.5 运行Python 有三种不同的办法来启动Python.最简单的方式就是交互式的启动解释器,每次输入一行Python代码来执行.另外一种启动Python的方法是运行Python脚本.这样会调用相关的脚本解释器.最后一种办法就是用集成开发环境中的图形用户界面运行Python.集成开发环境通常整合了其他的工具,例如集成的调试器.文本编辑器,而且支持各种像CVS这样的源代码版本控制工具. 1.5.1 命令行上的交互式解释器 在命令行上启动解释器,你马上就可以开始编写Python代码.在Unix,

《Python核心编程(第二版)》——1.4 下载和安装Python

1.4 下载和安装Python 得到所有Python相关软件最直接的方法就是去访问它的网站(http://python.org ).为了方便读者,你也可以访问本书的网站(http://corepython.com )并点击左侧的"Download Python"链接--我们在表格中罗列了当前针对大多数平台的Python版本,当然,这还是主要集中在"三巨头"身上:Unix,Win32和MacOS X. 正如我们在前面1.3.5小节中提到的,Python可应用的平台非常

《Python核心编程(第二版)》——1.7 比较Python(Python与其他语言的比较)

1.7 比较Python(Python与其他语言的比较) Python已经和很多语言比较过了.一个原因就是Python提供了很多其他语言拥有的特性,另外一个原因就是Python本身也是由诸多其他语言发展而来的,包括ABC.Modula-3.C.C++.Algol-68.SmallTalk.Unix shell和其他的脚本语言,等等.Python就是"浓缩的精华":Van Rossum研究过很多语言,从中吸收了许多觉得不错的特性,并将它们溶于一炉. 然而,往往因为Python是一门解释型