にインポートを経由して機能を実行している:私は次のスクリプトを持っているのpython
最初はtest1.py
x = 1
def test():
globx = x
print(globx)
globx += 1
return globx
x = test()
であり、第二はtest2.py
import test1
z=3
while z != 0:
if __name__=='__main__':
test1.test()
z -= 1
else:
pass
である私は学ぶためにこれらを使用していますし、他のスクリプトの関数を呼び出すと、私が望むのは出力です:
1
2
3
が、私は得る:
1
2
2
2
私は
global x
print(x)
x += 1
でtest1.py
で
globx = x
print(globx)
globx += 1
return globx
x = test()
を交換するとき、私は望ましい結果を得るのですが、どうやらあなたは使用しないでくださいグローバル変数のように、私は壊れたいと思う習慣です。
私には2つの質問があります。
- は、なぜ私が間違って出力を取得しないと私は
test1.py
代わりの3のglobx = x
バージョンを使用する場合 - はなぜ4つの出力があるのですか?
おかげで、これはうまく動作しますが、私は 'あなたが発電機を使用することができ – user1630350
はGlobal'使用しないように期待していたが、それはより複雑になります。グローバルなことなしに現在の価値をどのように保つことを他にどのように考えましたか? – Uriel
'return globx'を使い、' test = 'test1.test()'を呼び出すたびに 'x'を手動で設定した場合にのみ動作する' x = test() ' – user1630350