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上传文件和字符到PHP服务器
Nov 24 Python
python 动态加载的实现方法
Dec 22 Python
Python面向对象程序设计构造函数和析构函数用法分析
Apr 12 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
Apr 26 Python
python根据多个文件名批量查找文件
Aug 13 Python
python3的url编码和解码,自定义gbk、utf-8的例子
Aug 22 Python
创建Shapefile文件并写入数据的例子
Nov 26 Python
python数据分析:关键字提取方式
Feb 24 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 Python
python使用ctypes库调用DLL动态链接库
Oct 22 Python
python 模拟登录B站的示例代码
Dec 15 Python
浅谈Python numpy创建空数组的问题
May 25 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/01 无线电
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
PHP防CC攻击实现代码
2011/12/29 PHP
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
jquery动态改变form属性提交表单
2014/06/03 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
2014/11/02 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
2015/07/26 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
Python实现的爬虫功能代码
2017/06/24 Python
简单易懂的python环境安装教程
2017/07/13 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
2020/02/03 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
尽职尽责村干部自我鉴定
2014/01/23 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
学校隐患排查制度
2015/08/05 职场文书
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python