为什么脚本作为模块运行得更快?

时间:2016-08-21 03:26:57

标签: python performance import module

我有一个脚本'xyz.py',我将其作为另一个脚本(Main.py)的模块导入。 xyz.py中的所有内容都在我在Main.py中调用的类中。 xyz.py和Main.py共享相同的import语句:“xml.etree.ElementTree”; “Tkinter的”; “CV2”; “tkFileDialog”; “tkfd”; “来自PIL导入图片”; “ImageTk”; “OS”

我注意到当我在Main.py中运行具有xyz.py的所有方法和语句的类时,它们作为模块运行得比主脚本运行得快。 这个观察背后是否有一个普遍的事实,我可以用来加速其他东西?谢谢。

PS:我没有提供代码,因为它总计达到了> 400行,而且我不知道我应该看到什么,所以我不能拿一个小的相关样本。

1 个答案:

答案 0 :(得分:0)

当python程序运行时,主脚本总是通过解释器传递。但是,当导入模块时,python会检查其缓存(名为__pycache__的子目录),在该缓存中存储先前已编译为字节码的模块。如果缓存副本的日期与源代码日期的日期匹配,则它使用缓存版本。这可能是你所看到的。