版权声明:如果转载,请注明 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。