我知道.py和.pyc文件之间的区别。我的问题是不关于如何,但关于为什么根据docs:
从.pyc或.pyo读取程序时,程序运行速度不会更快 文件,而不是从.py文件中读取的文件;这是唯一的事情 更快的.pyc或.pyo文件是它们的速度 加载。
.pyc文件加载导入速度更快。但加载.pyc文件的'running'部分后,与.py文件中的'running'部分相同?这是为什么?我希望
我的问题:在导入部分之后,为什么.py文件的运行部分与.py文件相比不会加快执行速度?
答案 0 :(得分:17)
运行.py
文件时,首先将其编译为字节码,然后执行。加载这样的文件比较慢,因为对于.pyc
,编译步骤已经执行,但加载后,完成了相同的字节码解释。
在伪代码中,Python解释器执行以下算法:
code = load(path)
if path.endswith(".py"):
code = compile(code)
run(code)
答案 1 :(得分:10)
程序运行的方式始终相同。编译的代码被解释。
程序加载的方式不同。如果存在当前pyc
文件,则将其作为编译版本,因此在运行命令之前不必执行编译步骤。否则,将读取py
文件,编译器必须编译它(这需要一点时间),但是内存中的编译版本就像其他方式一样被解释。