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实现的下载8000首儿歌的代码分享
Nov 21 Python
用Python进行TCP网络编程的教程
Apr 29 Python
详细讲解用Python发送SMTP邮件的教程
Apr 29 Python
解析Python中while true的使用
Oct 13 Python
python开发游戏的前期准备
May 05 Python
使用pandas读取文件的实现
Jul 31 Python
python3 requests库文件上传与下载实现详解
Aug 22 Python
wxPython:python首选的GUI库实例分享
Oct 05 Python
Python和Sublime整合过程图示
Dec 25 Python
python re模块和正则表达式
Mar 24 Python
python正则表达式re.search()的基本使用教程
May 21 Python
pytorch 运行一段时间后出现GPU OOM的问题
Jun 02 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下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
2016/04/17 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
jquery的 filter()方法使用教程
2018/03/22 jQuery
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
javascript实现计算器功能
2020/03/30 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
Python中input与raw_input 之间的比较
2017/08/20 Python
Python实现Kmeans聚类算法
2020/06/10 Python
python pygame模块编写飞机大战
2018/11/20 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
Django用户身份验证完成示例代码
2020/04/03 Python
python/golang 删除链表中的元素
2020/09/14 Python
python 装饰器的使用示例
2020/10/10 Python
html5的canvas方法使用指南
2014/12/15 HTML / CSS
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
巴西女装购物网站:Eclectic
2018/04/24 全球购物
Ruby如何定义一个类
2012/10/08 面试题
文明礼仪事迹材料
2014/01/09 职场文书
实习推荐信
2014/05/10 职场文书
股权转让协议书
2014/12/07 职场文书
早上好问候语大全
2015/11/10 职场文书
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python
关于vue-router-link选择样式设置
2022/04/30 Vue.js