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 相关文章推荐
Anaconda入门使用总结
Apr 05 Python
Python实现滑动平均(Moving Average)的例子
Aug 24 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 Python
PYTHON如何读取和写入EXCEL里面的数据
Oct 28 Python
django框架单表操作之增删改实例分析
Dec 16 Python
Python 实现Image和Ndarray互相转换
Feb 19 Python
Python批量处理csv并保存过程解析
May 16 Python
Python astype(np.float)函数使用方法解析
Jun 08 Python
详解python内置模块urllib
Sep 09 Python
python3 re返回形式总结
Nov 20 Python
利于python脚本编写可视化nmap和masscan的方法
Dec 29 Python
浅析Python实现DFA算法
Jun 26 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登录时间的方法
2011/02/06 PHP
yii2实现 "上一篇,下一篇" 功能的代码实例
2017/02/04 PHP
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
JS实现商品橱窗特效
2020/01/09 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
JavaScript实现瀑布流布局的3种方式
2020/12/27 Javascript
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
python如何实现数据的线性拟合
2019/07/19 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
J2EE包括哪些技术
2016/11/25 面试题
syb养殖创业计划书
2014/01/09 职场文书
咖啡书吧创业计划书
2014/01/13 职场文书
中秋节超市促销方案
2014/01/30 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
竞赛口号大全
2014/06/16 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
检讨书1000字
2014/10/11 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
Nginx本地目录映射实现代码实例
2021/03/31 Servers
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL