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循环语句用法实例
Nov 10 Python
Python3安装Pymongo详细步骤
May 26 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
Sep 25 Python
python tkinter界面居中显示的方法
Oct 11 Python
Django Rest framework频率原理与限制
Jul 26 Python
分享一个pycharm专业版安装的永久使用方法
Sep 24 Python
python 字典的打印实现
Sep 26 Python
python生成器推导式用法简单示例
Oct 08 Python
Python异常原理及异常捕捉实现过程解析
Mar 25 Python
Python itertools.product方法代码实例
Mar 27 Python
在Matplotlib图中插入LaTex公式实例
Apr 17 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
Nov 17 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巧获服务器端信息
2006/12/06 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
自己的js工具_Form 封装
2009/08/21 Javascript
javascript中字符串拼接需注意的问题
2010/07/13 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
django表单的Widgets使用详解
2019/07/22 Python
python 如何调用远程接口
2020/09/11 Python
优秀电子工程系毕业生求职信
2014/05/24 职场文书
立志成才演讲稿
2014/09/04 职场文书
春晚观后感
2015/06/11 职场文书
欢送领导祝酒词
2015/08/12 职场文书
Vue过滤器(filter)实现及应用场景详解
2021/06/15 Vue.js
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android