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网络编程学习笔记(10):webpy框架
Jun 09 Python
python实现给字典添加条目的方法
Sep 25 Python
python实现中文分词FMM算法实例
Jul 10 Python
python修改list中所有元素类型的三种方法
Apr 09 Python
python 识别图片中的文字信息方法
May 10 Python
python计算两个数的百分比方法
Jun 29 Python
利用Python进行数据可视化常见的9种方法!超实用!
Jul 11 Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
pycharm运行scrapy过程图解
Nov 22 Python
Keras Convolution1D与Convolution2D区别说明
May 22 Python
使用Django实现商城验证码模块的方法
Jun 01 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
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
PHP SEO优化之URL优化方法
2011/04/21 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
php防止sql注入之过滤分页参数实例
2014/11/03 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
Aster vs Newbee BO3 第三场2.18
2021/03/10 DOTA
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
Python实现简单的语音识别系统
2017/12/13 Python
Python Socket使用实例
2017/12/18 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
pandas数据处理进阶详解
2019/10/11 Python
Python模块_PyLibTiff读取tif文件的实例
2020/01/13 Python
任意存:BOXFUL
2018/05/21 全球购物
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
C语言笔试集
2012/07/24 面试题
实习单位接收函
2014/01/11 职场文书
乡镇爱国卫生月活动总结
2014/06/25 职场文书
感恩节寄语2015
2015/03/24 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
步步惊心观后感
2015/06/12 职场文书