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连接数据库的方法
Oct 19 Python
python实现发送邮件功能代码
Dec 14 Python
基于Python中求和函数sum的用法详解
Jun 28 Python
解决pycharm运行出错,代码正确结果不显示的问题
Nov 30 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
Mar 27 Python
详解Python函数式编程—高阶函数
Mar 29 Python
Python split() 函数拆分字符串将字符串转化为列的方法
Jul 16 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
Dec 04 Python
Django使用Profile扩展User模块方式
May 14 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
Jun 17 Python
基于python调用jenkins-cli实现快速发布
Aug 14 Python
python3 sqlite3限制条件查询的操作
Apr 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
php实现TCP端口检测的方法
2015/04/01 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
Javascript 面向对象之重载
2010/05/04 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
如何在一个页面显示多个百度地图
2013/04/07 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
Python Trie树实现字典排序
2014/03/28 Python
说一说Python logging
2016/04/15 Python
python实现大文件分割与合并
2019/07/22 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
在matplotlib中改变figure的布局和大小实例
2020/04/23 Python
如何用Python徒手写线性回归
2021/01/25 Python
英国在线药房:Express Chemist
2019/03/28 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
写给老师的表扬信
2014/01/21 职场文书
优良学风班总结材料
2014/02/08 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
计划生育证明格式范本
2014/09/12 职场文书
青岛海底世界导游词
2015/02/11 职场文书
护士辞职信怎么写
2015/02/27 职场文书
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS