python:重新导入模块的成本是多少?

dre*_*cko 5 python import

我经常很想在狭窄的环境中导入需要的模块。例如在利用模块的功能体中。在这种情况下,import语句可能会执行多次。

除了样式问题之外,这样做的性能成本是多少?

小智 8

看看这个网站上的解释:

https://wiki.python.org/moin/PythonSpeed/PerformanceTips#Import_Statement_Overhead

即使 Python 不会多次导入同一个模块,您仍然可能会受到性能影响,具体取决于您的代码结构。您可以使用计时器查看实际影响。


nne*_*neo 6

重复import语句的成本非常低,因为 Python 缓存模块并且只导入它们一次(在第一次import),除非明确要求使用该reload函数重新加载模块。重复import语句的效果(和粗略的性能影响)本质上只是将导入的名称绑定到本地命名空间中。

然而,它不是完全免费的。import确实必须锁定和解锁导入表锁,并解析提供的名称。这意味着如果频繁调用它仍然会减慢您的程序速度。