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之使用Python操作数据库(1)
Nov 25 Python
Python中实现常量(Const)功能
Jan 28 Python
Python元字符的用法实例解析
Jan 17 Python
Python操作MySQL数据库的方法
Jun 20 Python
解决pycharm安装后代码区不能编辑的问题
Oct 28 Python
python实现一个简单的ping工具方法
Jan 31 Python
numpy中的meshgrid函数的使用
Jul 31 Python
python3实现单目标粒子群算法
Nov 14 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
Python实现密钥密码(加解密)实例详解
Apr 26 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
Jul 03 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
Terran历史背景
2020/03/14 星际争霸
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
PHP中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
DWZ table的原生分页浅谈
2013/03/01 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
javascript中Function类型详解
2015/04/28 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
2019/08/12 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
python3 实现的人人影视网站自动签到
2016/06/19 Python
浅谈python字符串方法的简单使用
2016/07/18 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
PyQT实现多窗口切换
2018/04/20 Python
Python WEB应用部署的实现方法
2019/01/02 Python
深入理解Django-Signals信号量
2019/02/19 Python
pandas删除指定行详解
2019/04/04 Python
Python3 执行Linux Bash命令的方法
2019/07/12 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
装潢设计实习自我鉴定
2013/09/19 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
军训感想500字
2014/02/20 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
防灾减灾标语
2014/10/07 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL