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脚本实现统计日志文件中的ip访问次数代码分享
Aug 06 Python
python绘制双柱形图代码实例
Dec 14 Python
python实现按长宽比缩放图片
Jun 07 Python
python针对不定分隔符切割提取字符串的方法
Oct 26 Python
对python3标准库httpclient的使用详解
Dec 18 Python
详解Python 函数如何重载?
Apr 23 Python
selenium 安装与chromedriver安装的方法步骤
Jun 12 Python
用Python将Excel数据导入到SQL Server的例子
Aug 24 Python
python实现将字符串中的数字提取出来然后求和
Apr 02 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
Apr 17 Python
python实现斗地主分牌洗牌
Jun 22 Python
python 列表推导和生成器表达式的使用
Feb 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
咖啡语言
2021/03/03 咖啡文化
PHP实现邮件群发的源码
2013/06/18 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
2014/11/05 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
JS类中定义原型方法的两种实现的区别
2007/03/08 Javascript
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
Js+Jq获取URL参数的集中方法示例代码
2014/05/20 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
2017/03/28 jQuery
Vue v2.4中新增的$attrs及$listeners属性使用教程
2018/01/08 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
JS实现简易日历效果
2021/01/25 Javascript
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python的lambda匿名函数的简单介绍
2013/04/25 Python
python删除特定文件的方法
2015/07/30 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
2019/07/03 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
Python中qutip用法示例详解
2020/10/02 Python
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
世嘉游戏英国官方商店:SEGA Shop UK
2019/09/20 全球购物
Servlet如何得到客户端机器的信息
2014/10/17 面试题
家电业务员岗位职责
2014/03/10 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
新闻编辑求职信
2014/07/13 职场文书
小学见习报告
2015/06/23 职场文书
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS