Python程序执行的原理介绍

咱们都知道,运用C/C++之类的编译性语言编写的程序,是需要从源文件转换成计算机运用的机器语言,经过链接器链接之后形成了二进制的可履行文件。运转该程序的时分,就能够把二进制程序从硬盘载入到内存中并运转。

可是关于Python而言,Python源码不需要编译成二进制代码,它能够直接从源代码运转程序。Python解释器将源代码转换为字节码,然后把编译好的字节码转发到Python虚拟机(PVM)中进行履行。接下来,经过一张图来描绘Python程序的履行过程,如下图所示。

在上图中,当咱们运转Python文件程序的时分,Python解释器会履行两个过程:

(1)把源代码编译成字节码

编译后的字节码是特定于Python的一种表现形式,它不是二进制的机器码,需要进一步编译才能被机器履行,这也是Python代码无法运转的像C/C++相同快的原因。假如Python进程在机器上具有写入权限,那么它将把程序的字节码保存为一个以.pyc为扩展名的文件,假如Python无法在机器上写入字节码,那么字节码将会在内存中生成并在程序结束时自动丢弃。在构建程序的时分最好给Python赋上在计算机上写的权限,这样只需源代码没有改动,生成的.pyc文件能够重复使用,进步履行功率。

(2)把编译好的字节码转发到Python虚拟机(PVM)中进行履行

PVM是PythonVirtualMachine的简称,它是Python的运转引擎,是Python系统的一部分,它是迭代运转字节码指令的一个大循环,一个接一个地完结操作。

推荐阅读

    linux存文件的命令?

    linux存文件的命令?,系统,工作,名称,标准,信息,管理,数据,命令,文件,传播,lin

    linux系统名称命令?

    linux系统名称命令?,系统,工作,地址,管理,信息,标准,名称,网络,命令,目录,Lin

    linux系统命令行在?

    linux系统命令行在?,系统,地址,工作,管理,信息,工具,最新,密码,首页,标准,怎

    建立文件的linux命令?

    建立文件的linux命令?,名字,系统,文件,命令,文件名,时间,名称,首次,密码,目

    linux程序的状态命令?

    linux程序的状态命令?,系统,状态,服务,情况,软件,进程,数据,基础,命令,信息,L

    linux解压rar文件命令?

    linux解压rar文件命令?,电脑,标准,文件,命令,系统,管理,名称,文件夹,目录,文

    linux系统命令改时间?

    linux系统命令改时间?,时间,系统,服务,大陆,国家,基础,城市,命令,时区,时钟,

    linux做系统盘命令?

    linux做系统盘命令?,系统,信息,设备,软件,情况,报告,工具,命令,首次,网上,Lin

    linux系统重亲命令?

    linux系统重亲命令?,工作,系统,标准,设备,名称,服务,命令,提示,主机,级别,详

    linux源程序清单命令?

    linux源程序清单命令?,工作,系统,地址,代码,管理,信息,官方网站,命令,目录,

    linux命令行看代码?

    linux命令行看代码?,代码,基础,系统,命令,数字,工作,情况,进程,程序,终端,在L

    linux删除夹文件命令?

    linux删除夹文件命令?,系统,命令,文件,不了,名称,档案,通用,文件夹,目录,指

    下载文件命令linux?

    下载文件命令linux?,软件,系统,网络,工具,中心,服务,情况,名称,设备,代理,LIN

    linux命令行传文件?

    linux命令行传文件?,手机,电脑,百度,数据,密码,位置,命令,文件,目录,数据库,L

    虚拟机安装linux命令?

    虚拟机安装linux命令?,系统,名称,虚拟机,网络,发行,网站,操作系统,版本,磁

    linux系统测试命令?

    linux系统测试命令?,系统,工作,地址,标准,信息,命令,数据,单位,软件,目录,软

    linux命令代码怎么看?

    linux命令代码怎么看?,时间,系统,代码,命令,状态,工具,情况,电脑,实时,基础,l

    linux命令行拆分文件?

    linux命令行拆分文件?,系统,软件,文件,工作,前缀,命令,指令,路径,文件名,两

    在linux下建文件命令?

    在linux下建文件命令?,时间,名字,文件,命令,名称,首次,系统,文件名,目录,终

    linux复制权限命令?

    linux复制权限命令?,系统,文件,目录,命令,网络,位置,时间,电脑,权限,用户,lin