编译型语言:在运行前将代码转换为二进制文件,比如c,java
解释型语言:通过解释器对代码进行逐行解释,然后再运行,比如python
当python程序运行时,内充中会使用PyCodeObject
对象来保存编译好的二进制文件,当python
运行结束时,Python
解释器则将PyCodeObject
写回到pyc
文件中.当python文件第二次运行时,首先会寻找pyc
文件,如果找到,则直接运行(不需要再次编译),如果找不到,则重复上面的过程.
主程序入口文件,一般不会保存pyc
文件,因为很有可能会有参数变动
模块文件,会保存为.pyc
文件,因为一般模块的变动不大,可重用率高.另外每次载入pyc
文件前,都会检查py
文件和pyc
文件的最后修改日期,如果不一致则重新生成一份pyc
文件.