最近、私はこの例を設定し、結果に驚いています。私は、コードでこれを実証します:Pythonマルチモジュールのグローバル変数。 Pythonのバグ?
はFile1:b.py:
delta = 0.0
def example():
global delta
delta = 1
def ret_delta():
return delta
File2の:a.py:
from b import *
example()
#WHY ARE THESE DIFFERENT?
print(delta) # prints: 0.0
print(ret_delta()) # prints: 1
これは意味がありません!なぜ変数にアクセスし、その変数を返す関数を呼び出すのが違いになるのでしょうか?あなたの参考のために
私はあなたがa.py
で
from b import *
を行うと、それは(delta
含む)モジュールb
で定義されたすべての名前をインポートWindowsの32ビット
'from b import *'は悪い形式です(この状況で何が起こるのか不明瞭な理由の1つです)。代わりに 'import b'を考えて、' b.delta'を代わりに使ってください。これはどちらも明示的ですが、_and_は実際に期待どおりに動作します。 – marcelm