私は理解できない状況に遭遇しました。Pythonでグローバル変数を2つの方法でインポートする
one.py(実行可能):
import two
import three
three.init()
two.show()
two.py:
import three
def show():
print(three.test)
three.py:
test = 0
def init():
global test
test = 1
結果は1ですが、私は3つのファイルを持っています私の期待通りに。今度はtwo.pyを修正しましょう:
from three import test
def show():
print(test)
結果は0です。なぜですか?
を、このため 'から3輸入test'の.. 2回目のtwo.pyでは、 'test'のみをインポートします。これはthree.pyで' 0'と同じです。 –
長いストーリーを短くするには、2番目のケースでは 'test'が' two.py'のローカルになりますので、 'three.test'を再バインドしても' two.test'に影響しません(これらは2つの異なる名前です)。詳細な説明は、https://nedbatchelder.com/text/names.htmlを参照してください。 –