python替代_2.3.1 Python 实现的替代者

2.3 执行模块的变种

在继续学习之前,应该指出前一节所介绍的内部执行流程反映了如今Python 的标准实现形式,并且这实际上并不是Python 语言本身所必需的。正是因为这一点,执行模块也在随时间而演变。事实上,从某种意义上讲有些系统已经改进了图2-2 所描述的情况。让我们花些时间探索一下这些变化中最显著的改进吧。

2.3.1 Python 实现的替代者

事实上,在编写本书的过程中,Python 语言有三种主要实现方式(CPython 、Jython 和IronPython )以及一些次要的实现方式,例如,Stackless Python 。简要地说,CPython 是标准的实现;其他的都是有特定的目标和角色的。所有的这些都用来实现Python 语言,只是通过不同的形式执行程序而已。

CPython

和Python 的其他两种实现方式相比,原始的、标准的Python 实现方式通常称作CPython 。这个名字根据它是由可移植的ANSI C 语言代码编写而成的这个事实而来的。这就是你从http://www.python.org 获取的、从ActivePython 分发包中得到的以及从绝大多数Linux 和Mac OS X 机器上自动安装的Python 。如果你在机器上发现有个预安装版本的Python, 那么很有可能就是CPython ,除非公司将Python 用在相当特别的场合。

除非希望使用Python 脚本化Java 或.NET ,你或许想要使用的就是标准的CPython 系统。因为CPython 是这门语言的参照实现方式,所以和其他的替代系统相比来说,它运行速度最快、最完整而且也最健全。图2-2 反映了CPython 的运行体系结构。

Jython

Jython 系统(最初称为JPython )是一种Python 语言的替代实现方式,其目的是为了与Java 编程语言集成。Jython 包含了Java 类,这些类编译Python 源代码、形成Java 字节码,并将得到的字节码映射到Java 虚拟机(JVM )上。程序员仍然可以像平常一样,在文本文件中编写Python 语句;Jython 系统的本质是将图2-2 中的最右边两个方框中的内容替换为基于Java 的等效实现。

Jython 的目标是让Python 代码能够脚本化Java 应用程序,就好像CPython 允许Python 脚本化C和C++ 组件一样。它实现了与Java 的无缝集成。因为Python 代码被翻译成Java 字节码,在运行时看起来就像一个真正的Java 程序一样。Jython 脚本可以应用于开发Web applet 和servlet ,建立基于Java 的GUI 。此外,Jython 具有集成支持的功能,允许导入Python 代码或使用Java 的类(这些类就像是用Python 编写的一样)。因为Jython 要比CPython 慢而且也不够健壮,它往往被看作是一个主要面向寻找Java 代码前端脚本语言的Java 开发者的一个有趣的工具。

IronPython

Python 的第三种(截止到目前写本书时,从某种程度上来讲,Python 的第三种实现方式仍然是新的)实现方式IronPython ,设计它的目的是让Python 程序可以与Windows 平台上的.NET 框架以及与之对应的Linux 的上开源的Mono 编写成的应用相集成。本着像微软早期的COM 模型一样的精神,将.NET 和C# 程序语言的运行系统设计成与语言无关性的对象通信层。IronPython 允许Python 程序既可以用作客户端也可以用作服务器端的组件,还可以与其他.NET 的语言进行通信。

在实现上,IronPython 很像Jython (实际上两者都是由同一个创始人开发的):它替换了图2-2 中***的两个方框,将其换成.NET 环境的等效执行方式。并且,就像Jython 一样,IronPython 有特定的目标:它主要为了满足在.NET 组件中集成Python 的开发者。因为它是由微软公司开发的,IronPython 也许能够为了性能实现完成一些重要的优化工具。IronPython 涉及到的应用范围就像本书所写的那样;如果想了解更多细节,请参考Python 的线上资源,或者在网络上搜索相关内容(注2)。

【责任编辑:董书 TEL:(010)68476606】

点赞 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全国计算机等级考试题库二级C操作题100套(第100套)

更多干货推荐可以去牛客网看看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程刷题面经求职讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!!!点击进…

主页是单一的HTML文件,什么是主页,下列说法最为准确的是 _____。

关于局域网、广域网和互联网的组建和因特网的接入,回答下列问题。(1)关于局域网和广域网的组建,下列说法不正确的是 _____。(A)若要组建多台计算机的局域网络, 通常需要集线器 Hub、网卡和双绞线,通过集线器实现多台计算机的连接;…

【共读Primer】55.[6.4]函数重载--重载与作用域 Page210

讲解之前,先来看一组代码 string read(); void print(const string &); void print(double); void fooBar(int ival) {bool read false; // 新作用域:隐藏了外层的readstring s read; // 错误: read是一个布尔值,而非函数…

python中numpy模块的around方法_Python numpy.around()用法及代码示例

numpy.around(arr,decimals 0,out None):此数学函数可帮助用户将数组元素平均舍入为给定的小数位数。参数:array :[数组]输入数组。decimal :[int,可选]我们要舍入的小数位。默认值0。如果是-ve十进制,则…

安卓APP_ 其他(1) —— 程序的签名打包并在手机上运行

摘自:安卓APP_ 其他(1) —— 程序的签名打包并在手机上运行 作者:丶PURSUING 发布时间: 2021-03-29 20:58:26 网址:https://blog.csdn.net/weixin_44742824/article/details/115310388 刚学到第四个控件&am…

设置centos6 yum源为光盘

1、挂载光盘mount /dev/cdrom /media/cdrom2、设置CentOS-Media.repo检查/etc/yum.repos.d/目录是否存在里文件,如存在,此步略过,如果不存在,手动建立,代码如下:[c6-media]nameCentOS-$releasever - Mediab…

计算机数据恢复专业,专业电脑数据恢复软件哪个好

原标题:专业电脑数据恢复软件哪个好在我们日常清理电脑时,有时会意外删除一些有用的文件,比如重要文件、照片等。这时就需要使用数据恢复软件尝试恢复数据。EasyRecovery是一款强大有效实现数据恢复的软件,软件占用空间小&#xf…

C#开发移动应用系列(2.使用WebView搭建WebApp应用)

C#开发移动应用系列(2.使用WebView搭建WebApp应用) 原文:C#开发移动应用系列(2.使用WebView搭建WebApp应用)前言上篇文章地址:C#开发移动应用系列(1.环境搭建) 嗯..一周了 本来打算2天一更的 - - ,结果 出差了..请各位原谅.. 今天我们来讲一下使用WebView搭建WebApp应用. 说明一…

new 一个模板、类_Java必备基础-类(Class)

你好,我是goldsunC让我们一起进步吧!类上一篇文章介绍了Java的基础数据类型和引用数据类型中的数组,引用数据类型除了数组之外,还包括类和接口。那什么是引用数据类型呢?看个例子:public class Test {publi…

华北电力大学计算机科学与技术考研,华北电力大学吴克河教授谈计算机科学与技术专业...

导语:读万卷书不如行万里路,行万里路不如名师点悟。选导师也是个大学问——择师而师,不可草草。为此我们特邀请众多精英导师,我们期待他们的亲身经历和观点建议,能够给考研路上的你以参考……华北电力大学计算机科学与…

怎样让防火墙跟其他网络设备实现时钟同步

怎样让防火墙跟其他网络设备实现时钟同步 一方面,如果网络设备上的时间不一致,如路由器跟防火墙的时间相差十分钟,则在故障排除的时候,就会很麻烦。因为防火墙或者路由器上都有事件日志,在这些日志上会反映相关的故障信…

安卓APP_ 控件(4)—— ImageView

摘自:安卓APP_ 控件(4)—— ImageView 作者:丶PURSUING 发布时间: 2021-03-29 21:52:06 网址:https://blog.csdn.net/weixin_44742824/article/details/115311375 开篇:安卓APP_ 控件&#xff0…

使用python的openpyxl模块操作excel

openpyxl(可读写excel表)专门处理Excel2007及以上版本产生的xlsx文件,xls和xlsx之间转换容易 openpyxl的安装 模块的引入 from openpyxl import Workbook from openpyxl.styles import Color, Font, Alignment from openpyxl.styles import B…

python日志配置文件解释_python 之 logger日志 字典配置文件

importosimport logging.config #不能只导入loggingBASE_DIRos.path.dirname(os.path.dirname(__file__))#DB_PATHos.path.join(BASE_DIR,db)#DB_PATHr%s\db %BASE_DIR#定义日志文件的路径LOG_PATHos.path.join(BASE_DIR,log,access.log)#LOG_PATHr%s\log\access.log %BASE_DIR…

最常用计算机信息呼唤标准代码,计算机考试题

1.Powerpoint中,在幻灯片浏览视图下,按住Ctel键并拖动某一幻灯片,可以完成(D)A. 移动幻灯片B. 选定幻灯片C. 删除幻灯片D. 复制幻灯片2.在Powerpoint中,为所有幻灯片设置统一的、特有的外观风格,应运用(A)A. 母版 B. 自…

awk一些很恐怖的特性

使用也可以产生值 echo "" | awk END{a[1]1;x a[2];print length(a);print a[3];print length(a)} 打印结果是:2 空行 3 这个awk的数组元素居然是3!!就是说使用数组也是定义数组!!!这很恐怖&…

安卓APP_ 控件(5)—— ProgressBar

摘自:安卓APP_ 控件(5)—— ProgressBar 作者:丶PURSUING 发布时间: 2021-03-31 13:03:07 网址:https://blog.csdn.net/weixin_44742824/article/details/115313496 控件ProgressBar就是对进度条的设定&…

sql 写query_为什么需要动态SQL

为什么需要动态SQL在使用 EF或者写 SQL语句时,查询条件往往是这样一种非常常见的逻辑:如果客户填了查询信息,则查询该条件;如果客户没填,则返回所有数据。我常常看到很多人解决这类问题时使用了错误的静态 SQL的解决办…

湖南大学计算机学院张柏杨,缪力-湖大信息科学与工程学院

[1]Li-Hui XIANG, Li Miao,Da-Fang ZHANG, Feng-Ping CHEN. Benefit of Compression in Hadoop: A CaseStudy of Improving IO Performance on Hadoop. 2014 IEEE International Conferenceon Industrial Engineering and Information Technology (EI/ISTP)[2]向丽辉…