私はしばらくこれを疑問に思っていました:モジュールを複数回インポートしても安全であることが保証されていますか? もちろん、モジュールがファイルへの書き込みなどのオペレーティング システムの処理を実行する場合は、おそらくそうではありませんが、ほとんどの単純なモジュールでは、単純にインポートを勝手に実行しても安全でしょうか? モジュールのグローバルな状態を管理する規則はありますか?
質問する
13645 次
2 に答える
36
はい、import module
モジュールが何であれ、1つのPythonプログラムで何度でも実行できます。それimport
以降は、最初にキャッシュされたモジュールに再評価するのではなく、アクセスします。
于 2012-09-19T02:01:11.103 に答える
9
1 万もの異なる名前で 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 に答える