マルチのpythonモジュールは、同じ変数を共有します

機構Pythonのインポートパッケージは、インポート着信およびモジュールシステムが中に配置されているsys.module内部辞書

時のPyインポート複数のファイルは、に行きますsys.module輸入検査があったかどうか、およびインポートを持っている場合、インポートは繰り返しません、そうでない場合はインポートが来ました

from aaa.yyy import xこのように同じ、test.pyではありませんfrom importそしてxは、独自のテストで、名前空間の変数を。そこで、Xは、xの変化がx YYYに影響を与えることができないためにどのような場合にはtest.pyでのみ有効です。

つまり
from yyy import x
と同等

improt yyy
x= yyy.x  # 当你执行x=2时,完全影响不到yyy.x

だから、あなたが共有変数が必要な場合は、からこのフォームYYYインポートXが、インポートファイルの使用を使用していない、そしてyyy.xで使用することができ、その後、yyy.x =「ABC」を変更することができます。グローバル変数のこのような処理は、共有することができます。つまり、別の名前空間を維持するために、これは共有を実現するために、再度のpythonをインポートしません。

例:

# 目录树
multi_module
│  main.py
│  val_sync.py
# val_sync.py
DICT = {
    'a':1,
    'b':2,
}
# main.py
import val_sync as mv
print(mv.DICT)
mv.DICT['c'] = 3
print(mv.DICT)
mv.DICT.pop('a')
print(mv.DICT)
python main.py
out:
{'a': 1, 'b': 2}
{'a': 1, 'b': 2, 'c': 3}
{'b': 2, 'c': 3}

おすすめ

転載: www.cnblogs.com/sayiqiu/p/10966064.html