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 列表(List)操作方法详解
Mar 11 Python
Python中操作MySQL入门实例
Feb 08 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
Aug 30 Python
python中利用Future对象异步返回结果示例代码
Sep 07 Python
python的exec、eval使用分析
Dec 11 Python
对python中Json与object转化的方法详解
Dec 31 Python
python 并发编程 非阻塞IO模型原理解析
Aug 20 Python
python应用文件读取与登录注册功能
Sep 23 Python
Python基于WordCloud制作词云图
Nov 29 Python
keras用auc做metrics以及早停实例
Jul 02 Python
Python脚本实现Zabbix多行日志监控过程解析
Aug 26 Python
Python实现京东抢秒杀功能
Jan 25 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
mysq GBKl乱码
2006/11/28 PHP
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
从JavaScript 到 JQuery (1)学习小结
2009/02/12 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
JS高级笔记
2011/07/13 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
浅析JavaScript动画
2015/06/10 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
JS简单生成两个数字之间随机数的方法
2016/08/03 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
Angular实现的进度条功能示例
2018/02/18 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
nodejs语言实现验证码生成功能的示例代码
2019/10/13 NodeJs
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
Python实现Logger打印功能的方法详解
2017/09/01 Python
使用Python来开发微信功能
2018/06/13 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
flask入门之表单的实现
2018/07/18 Python
解决python "No module named pip" 的问题
2018/10/13 Python
python 搜索大文件的实例代码
2019/07/08 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
高中毕业生自我鉴定
2013/11/03 职场文书
先进班级集体事迹材料
2014/01/30 职场文书
教师简历自我评价
2014/02/03 职场文书
党员一帮一活动总结
2014/07/08 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
源码解读Spring-Integration执行过程
2021/06/11 Java/Android
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS