機構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}