python程序的执行过程

python应用:图形界面开发、人工智能、爬虫、系统网络运维、大数据、云计算系统、web全栈开发等

高级语言分为两种类型:编译型和解释型。通俗说,编译型就是将所有的东西一下子翻译完,首先将运行前先由编译器将高级语言代码编译为对机器可以执行的可执行文件(.exe .dll .ocx)。例如C/C++,生成的可执行文件exe文件。 编译只执行了一次,运行期间不需要再翻译,所以编译型语言的程序执行效率高。解释型就是在运行程序的时候才翻译,翻译器将高级语言代码翻译成易于执行的中间代码,并由专门的解释器(例如浏览器、虚拟机)逐一将中间代码解释成机器码并执行,每一个语句都是执行的时候才能继续翻译。解释性语言每执行一次要翻译一次,效率表较低。

python语言编写的程序首先由将源码编译生成中间字节码(.pyc),再由python解释器根据中间字节码解释执行,所以说python是先编译后解释的高级程序设计语言。

python执行的基本流程图如下:

例如:

  • 这是没import的x.py

运行一下

直接走第一条线,生成的中间字节码存在内存中看不见,没被持久化存在磁盘,故看不见.pyc文件

  • 有import语句

运行一下

走第四条线,会编译y.py生成中间字节码,把生成的字节码存储到y.pyc,可见,同时会记录源码真实修改时间

  • 再次执行x.py,直接加载y.pyc,比对时间走第二条线,直接根据中间字节码文件解释执行

运行一下,结果不变

直接执行y.pyc,可以执行

  • 修改y.py源码,走第三条线

              

              

        y.py修改后的时间与y.pyc存储的修改时间不同,这时再次执行y.pyc,结果没有变化,还是没修改以前的

            

         现在再次执行x.py

             

         先编译源码y,生成中间字节码,根据y的中间字节码解释执行,先输出yyyy和1,根据x的中间字节码解释执行输出xxx123和yyyy和1

        这时y.pyc重新更新,再次记录记录源码最后写改时间,执行一下y.pyc,结果发生了更新变化

            

总的来说,python是先编译后执行的语言,中间字节码文件可以持久化编译结果,提升了程序执行效率。对于持久化关键看import,x.py不会持久化,但是import里面y.py会被持久化。也可以手动持久化 python -m py_compile x.py,持久化后可以直接执行,但是执行x.py不会执行x.pyc

          

          

          

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值