python源码解释过程

版权声明:如果转载,请注明 https://blog.csdn.net/weixin_44607176/article/details/88669623

首先你可以观察一下程序的运行过程,具体步骤如下:

1、编写py文件 A

2、在编写一个py文件 B

3、在A中import B

运行py文件A

结果:

在运行py文件A的时候,会产生一个B的pyc文件,加速装载,但是A在每次使用的时候,由于只装载一次,所以没有pyc

以上是对import解释

整体过程解释

1.Python先把代码(.py文件)编译成字节码,交给字节码虚拟机,然后虚拟机一条一条执行字节码指令,从而完成程序的执行。

2. 字节码

字节码在Python虚拟机程序里对应的是PyCodeObject对象。

.pyc文件是字节码在磁盘上的表现形式。

3. pyc文件

PyCodeObject对象的创建时机是模块加载的时候,即import。

Python test.py会对test.py进行编译成字节码并解释执行,但是不会生成test.pyc。

如果test.py加载了其他模块,如import util,Python会对util.py进行编译成字节码,生成util.pyc,然后对字节码解释执行。

如果想生成test.pyc,我们可以使用Python内置模块py_compile来编译。

加载模块时,如果同时存在.py和.pyc,Python会尝试使用.pyc,如果.pyc的编译时间早于.py的修改时间,则重新编译.py并更新.pyc。

猜你喜欢

转载自blog.csdn.net/weixin_44607176/article/details/88669623