python的解释器类型

Python解释器

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。

CPython(应用最广泛)

当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器: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,而是通过网络调用来交互,确保各程序之间的独立性。

时间: 2024-10-07 15:43:27

python的解释器类型的相关文章

12 Python解释器类型&Python2or3

我们现在知道了Python是一门解释型语言,代码想运行,必须通过解释器执行,Python的解释器本身也可以看作是个程序(翻译官司是哪国人不重要),这个程序是什么语言开发的呢? 答案是好几种语言? what? 因为Python有好几种解释器,分别基于不同语言开发,每个解释器特点不同,但都能正常运行我们的Python代码,下面分别来看下:CPython当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython.这个解释器是用C语言开发的,所以

Python中布尔类型

我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算: 与运算:只有两个布尔值都为 True 时,计算结果才为 True. True and True   # ==> TrueTrue and False   # ==> FalseFalse and True   # ==> FalseFalse and False   # ==> False或运算:只要有一个布尔值为 True,计算结果就是 True. True or

python与鸭子类型

部分参考来源:作者:JasonDing  https://www.jianshu.com/p/650485b78d11##s1 首先介绍下面向对象(OOP)的三大特征: (1)面向对象程序设计有三大特征:封装(Encapsulation).继承(Inheritance).多态(Polymorphism).这三个单词很常见,大家还是记住为好! (2)封装(Encapsulation):类包含了数据和方法,将数据和方法放在一个类中就构成了封装. (3)继承(Inheritance):Java是单继承

Python的动态类型

动态类型:                                                      在python中,类型是在运行过程中自动决定的,而不是通过代码声明的. 变量:                                                                                     变量是一个系统表的元素,拥有指向对象的连接的空间 python中,类型的概念是存在于对象中的,而不是变量中,变量是通用的. 变量的使用

python中非序列类型期望值拷贝的解决方案

看下面这段代码: # -*- coding: utf-8 -*-import copy class Present(object):    def __init__(self, str_cmd):        self._str_cmd = str_cmd        print "进入Present时的地址:", id(self._str_cmd) def set_value(self):        temp = "test_cmd"        sel

Python的数值类型

问题: 1. Python数值有哪些? 2. 各类型的精度是多少? 3. 类型的转换是如何实现的? 5. 如何使用这些数据类型?需要注意什么? 6. 什么是不可变类型? 数值类型:     整型: (不可变类型)         标准整型:取值范围[-sys.maxint-1, sys.maxint]         长整型:可表示无限大的整数,其值仅与你机器支持的(虚拟)内存大小有关         数值超出标准整型范围将会转换为长整型.         例如:             1.定

python 内置数据类型

一.Dictionary 的介绍 dictionary 是python 的内置类型之一,它定义键和值之间一对一的关系 1.定义dictionary 2.修改dictionary NOTE: Dictionary 是无序的.当使用 dictionary 时,您需要知道:dictionary 的 key 是大小写敏感的. 3.dictionary 中混用数据类型 4.dictionary 删除元素 二.List 介绍 List 是 Python 中使用最频繁的数据类型.它很像java中的ArrayL

Python<9>动态类型简介

动态类型以及它提供的多态性,无疑是Python语言简洁性和灵活性的基础. 一.变量 <1>变量创建 一个变量a,当代码第一次给它赋值时就创建了它,之后的赋值将会改变已创建的变量名的值. <2>变量类型 变量永远不会有任何的和它关联的类型信息或约束.变量原本是通用的,它只是在一个特定的时间点,简单的引用了 一下特定的对象而已. <3>变量使用 当变量出现在表达式中,它会马上被当前引用的对象所替代(对象是有类型的).此外所有的变量必须在使用前明确的 赋值,使用未赋值的变量会

转 python:_winreg类型名称

python:_winreg类型名称 python winreg对于值类型: 如何查询_winreg.REG_BINARY为'REG_BINARY'? 我可以做手工: import _winreg reg_type_str = { _winreg.REG_BINARY: 'REG_BINARY', _winreg.REG_DWORD: 'REG_DWORD', _winreg.REG_DWORD_LITTLE_ENDIAN: 'REG_DWORD_LITTLE_ENDIAN', _winreg.