我一直在想这个问题:多次导入模块是否保证安全?当然,如果模块执行诸如写入文件之类的操作系统操作,那么可能不会,但是对于大多数简单模块来说,简单地执行导入是否安全?是否有管理模块全局状态的约定?
问问题
13645 次
2 回答
36
是的,你可以import module
在一个 Python 程序中任意多次,无论它是什么模块。第一个之后的每个后续都import
访问缓存的模块而不是重新评估它。
于 2012-09-19T02:01:11.103 回答
9
以一万个不同的名称导入 os 模块似乎没有任何问题。
for i in range(10000):
exec("import os as foo%i" % i)
for i in range(10000):
exec("foo%i.getcwd()" % i)
随着不同类别的进口:
for i in range(10000):
exec("""class FooClass%i:
import os as foo%i
print foo%i.getcwd()""" % (i,i,i))
两者都运行没有问题。当然不是保证,但至少看起来你不会立即遇到实际问题。
于 2012-09-19T02:05:54.907 回答