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解决鸡兔同笼问题的方法
Dec 20 Python
python实现批量改文件名称的方法
May 25 Python
Python语言实现机器学习的K-近邻算法
Jun 11 Python
python杀死一个线程的方法
Sep 06 Python
Python利用operator模块实现对象的多级排序详解
May 09 Python
python使用mysql数据库示例代码
May 21 Python
TensorFlow数据输入的方法示例
Jun 19 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
python接口自动化测试之接口数据依赖的实现方法
Apr 26 Python
django如何实现视图重定向
Jul 24 Python
Pytorch如何切换 cpu和gpu的使用详解
Mar 01 Python
python 定义函数 返回值只取其中一个的实现
May 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
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
Smarty的配置与高级缓存技术分享
2012/06/05 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
jQuery 白痴级入门教程
2009/11/11 Javascript
基于jquery的让textarea自适应高度的插件
2010/08/03 Javascript
js同比例缩放图片的小例子
2013/10/30 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
angular4自定义组件详解
2017/09/28 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
2019/03/27 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
python实现比较文件内容异同
2018/06/22 Python
对Python信号处理模块signal详解
2019/01/09 Python
Python tornado上传文件的功能
2020/03/26 Python
Pymysql实现往表中插入数据过程解析
2020/06/02 Python
python 实现端口扫描工具
2020/12/18 Python
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
公司经理聘任书
2014/03/29 职场文书
拔河比赛口号
2014/06/10 职场文书
2014法院干警廉洁警示教育思想汇报
2014/09/13 职场文书
护理医院见习报告
2014/11/03 职场文书
幼儿园教师求职信
2015/03/20 职场文书
班主任寄语2016
2015/12/04 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python
一些让Python代码简洁的实用技巧总结
2021/08/23 Python
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers