Python常用编译器原理及特点解析


Posted in Python onMarch 23, 2020

python要知道怎么用好编译器。当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器,比如:

CPython

当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

PyPy

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。

Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

以上的你都见过吧:虽然Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python将unicode转为str的方法
Jun 21 Python
Python实现树的先序、中序、后序排序算法示例
Jun 23 Python
用Python写一段用户登录的程序代码
Apr 22 Python
python提取图像的名字*.jpg到txt文本的方法
May 10 Python
python3.6使用pymysql连接Mysql数据库
May 25 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
对Python3 序列解包详解
Feb 16 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
python数组循环处理方法
Aug 26 Python
python实现广度优先搜索过程解析
Oct 19 Python
python super函数使用方法详解
Feb 14 Python
Python -m参数原理及使用方法解析
Aug 21 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
Mar 23 #Python
Python面向对象程序设计之继承、多态原理与用法详解
Mar 23 #Python
python实现图像拼接功能
Mar 23 #Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 #Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
Mar 23 #Python
Python3 pickle对象串行化代码实例解析
Mar 23 #Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
Mar 23 #Python
You might like
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
js模拟类继承小例子
2010/07/17 Javascript
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
python计算书页码的统计数字问题实例
2014/09/26 Python
python使用turtle绘制分形树
2018/06/22 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
中文教师求职信
2014/02/22 职场文书
个人务虚会发言材料
2014/10/20 职场文书
八年级物理教学反思
2016/02/19 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python
SQL Server中的游标介绍
2022/05/20 SQL Server