天天看点

对python程序执行机制的理解

严格来说python是一门先编译成字节码(PythonCodeObject,.pyc文件),然后再解释执行的语言。

在创建一个a.py文件时,假设我们在终端中手动运行python a.py,那在a.py被运行期间都发生了什么?看下这张图:

对python程序执行机制的理解
  • 如果a.py中有import b等导入包或模块的话,那么会对b等被导入的包或模块从头开始一次执行机制,类似于递归。
  • 判断.pyc和.py修改时间是否一致时,如果此时源码不在了,那就直接不比对时间是否一致,直接执行.pyc文件
  • .pyc文件的主要作用是持久化编译结果, 提升下次的执行效率,且.py和.pyc文件都可以交给解释器直接处理