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 自动提交和抓取网页
Jul 13 Python
Python实现抓取网页并且解析的实例
Sep 20 Python
python中os模块详解
Oct 14 Python
详解python发送各类邮件的主要方法
Dec 22 Python
Python基于Floyd算法求解最短路径距离问题实例详解
May 16 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 Python
Django获取该数据的上一条和下一条方法
Aug 12 Python
python django中8000端口被占用的解决
Dec 17 Python
windows下Pycharm安装opencv的多种方法
Mar 05 Python
使用tensorflow根据输入更改tensor shape
Jun 23 Python
Python无损压缩图片的示例代码
Aug 06 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将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
详解PHP数组赋值方法
2015/11/07 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
PHP Include文件实例讲解
2019/02/15 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
Google 静态地图API实现代码
2010/11/19 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
Python 可爱的大小写
2008/09/06 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
基于Pytorch SSD模型分析
2020/02/18 Python
浅析Python 条件控制语句
2020/07/15 Python
python 如何上传包到pypi
2020/12/24 Python
HTML5 canvas 基本语法
2009/08/26 HTML / CSS
vue实现倒计时功能
2021/03/24 Vue.js
即将毕业大学生自荐信
2014/01/24 职场文书
幼儿教育感言
2014/02/05 职场文书
公司董事长岗位职责
2014/06/08 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
后勤工作个人总结
2015/02/28 职场文书
保研专家推荐信范文
2015/03/25 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
茶花女读书笔记
2015/06/29 职场文书
小学家庭教育心得体会
2016/01/14 职场文书
《怀念母亲》教学反思
2016/02/19 职场文书
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL
详解Java实践之抽象工厂模式
2021/06/18 Java/Android
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
电脑开机弹出documents文件夹怎么回事?弹出documents文件夹解决方法
2022/04/08 数码科技