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批量修改文件后缀的方法
Jan 26 Python
使用Python编写基于DHT协议的BT资源爬虫
Mar 19 Python
Python中你应该知道的一些内置函数
Mar 31 Python
解决Python字典写入文件出行首行有空格的问题
Sep 27 Python
Python动态导入模块的方法实例分析
Jun 28 Python
python3 中文乱码与默认编码格式设定方法
Oct 31 Python
python实现扫描ip地址的小程序
Apr 16 Python
Kears+Opencv实现简单人脸识别
Aug 28 Python
Python基于类路径字符串获取静态属性
Mar 12 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
Sep 28 Python
详解Python 3.10 中的新功能和变化
Apr 28 Python
python中if和elif的区别介绍
Nov 07 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
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
Laravel 实现数据软删除功能
2019/08/21 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
控制input输入框中提示信息的显示和隐藏的方法
2014/02/12 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
2016/07/22 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
Python中使用ConfigParser解析ini配置文件实例
2014/08/30 Python
python3 实现的人人影视网站自动签到
2016/06/19 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
浅谈python常用程序算法
2019/03/22 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
校园安全检查制度
2014/02/03 职场文书
教学改革实施方案
2014/03/31 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript
JavaScript获取URL参数的方法分享
2022/04/07 Javascript