内存成本显然取决于模块到底有多大,但我只是在寻找一个普遍的答案:在 Python 中导入模块通常是昂贵还是便宜?如果我有几十个小脚本可能会在整个应用程序期间保留在内存中,那会占用多少内存?
问问题
1426 次
1 回答
8
听起来您并不担心时间成本(很好;这很愚蠢,因为模块只导入一次),而是内存成本。我告诉你:如果你需要这些模块中的所有功能,那么你打算如何避免将它们全部放在内存中?最好import
以最合乎逻辑的方式处理事情。
也就是说,在 Pythonimport
中是一条语句,而不是某种预处理器指令(或类似指令),因此您可以延迟模块的导入,直到您真正需要它的内容,只需安排语句在适当的时间运行即可。在一些特别大或复杂的项目中,这可能是一个有意义的优化,或者至少使棘手的事情成为可能。请记住,Python 编译器不会尝试检查foo
您引用foo.bar
;时是否存在 在运行时查找每个名称。鸭子打字在这里发挥作用;foo.bar
代码不关心foo
是模块、类还是对象的名称。(这基本上是因为模块和类是对象,但我离题了......)
于 2011-07-25T07:15:11.857 回答