成都创新互联网站制作重庆分公司

python代码是如何运行的

这篇文章给大家分享的是有关python代码是如何运行的的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的新民网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

python作为一种动态语言,其实是一个解释器软件包。当Python运行脚本时,在代码开始进行处理之前,Python还会执行一些步骤。第一步是编译成所谓的“字节码”,如果Python进程拥有写入权限,将把程序的字节码保存为一个以.pyc为扩展名的文件, 如果Python无法在机器上写入字节码,程序仍然可以工作:字节码将会在内存中生成并在程序结束时简单地丢弃。一旦程序编译成字节码(或字节码从已经存在的.pyc文件中载入),之后的字节码发送到通常称为Python虚拟机(Python VirtualMachine,简写为PVM)上来执行。PVM不是一个独立的程序,是Python的运行引擎,不需要安装。事实上PVM就是迭代运行字节码指令的一个大循环,一个接一个地完成操作。

python学习网,大量的免费python视频教程,欢迎在线学习!

因此Python具有更多的动态语言特性:在运行时,Python程序去构建并执行另一个Python程序是有可能的,而且往往是非常方便的。例如,eval和exec内置模块,能够接受并运行包含Python程序代码的字符串。使用如下代码可以查看add函数的字节码:

import dis

def add(a,b):
    sum=a+b
    return sum

print(dis.dis(add))

主要的python解释器

CPython

当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。CPython是使用最广的Python解释器,也是默认的python解释器。

IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

PyPy

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。

Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。Jython脚本可以应用于开发Web applet和servlet,建立基于Java的GUI。此外,Jython具有集成支持的功能,允许导入Python代码或使用Java的类。因为Jython要比CPython慢而且也不够健壮,它往往看做是一个主要面向寻找Java代码前端脚本语言的Java开发者的一个有趣的工具。

IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

生成独立运行程序

借助一些第三方工具Python程序可以生成独立的可执行二进制代码文件进行分发。这些第三方工具能够将程序的字节码、PVM(解释器)以及任何程序所需要的Python支持文件捆绑在一起形成一个单独的文件。,主要有三种工具:py2exe(Windows下使用)、PyInstaller(和py2exe类似,它能够在Linux及UNIX上使用,并且能够生成自安装的独立执行程序)以及freeze(最初始的版本)。

感谢各位的阅读!关于python代码是如何运行的就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!


本文标题:python代码是如何运行的
本文来源:http://cxhlcq.com/article/ghgdgg.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部