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 修改文件指定行的方法
May 15 Python
Python中的闭包实例详解
Aug 29 Python
python脚本实现xls(xlsx)转成csv
Apr 10 Python
python 写入csv乱码问题解决方法
Oct 23 Python
python自动重试第三方包retrying模块的方法
Apr 24 Python
Python 画出来六维图
Jul 26 Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 Python
Python加载数据的5种不同方式(收藏)
Nov 13 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 Python
python开发飞机大战游戏
Jul 15 Python
Python如何让字典保持有序排列
Apr 29 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通用分页类page.php[仿google分页]
2008/08/31 PHP
linux下为php添加curl扩展的方法
2011/07/29 PHP
PHP常用技术文之文件操作和目录操作总结
2014/09/27 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
详解js类型判断
2018/05/22 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
Python实现把数字转换成中文
2015/06/29 Python
Python 中pandas.read_excel详细介绍
2017/06/23 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
详解【python】str与json类型转换
2019/04/29 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
PageFactory设计模式基于python实现
2020/04/14 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
波兰电子产品购物网站:Vobis
2019/05/26 全球购物
linux面试题参考答案(7)
2012/10/29 面试题
幼儿园开学寄语
2014/04/03 职场文书
终止合同协议书
2014/04/17 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
开学典礼策划方案
2014/05/28 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
MySQL性能指标TPS+QPS+IOPS压测
2022/08/05 MySQL