誰かがここで何が起こっているのか説明できますか
x = 10
def foo():
print "x in foo = ",x
if x: x = 8 -------------> mysterious line
foo()
print "x in main = ",x
上記のコードで、不思議な行をコメントアウトすると(x:x = 8の場合)
出力を取得します
x in foo = 10
x in main = 10
そうしないと、エラーが発生します
"UnboundLocalError:割り当て前に参照されたローカル変数'x'"
なぜそうなのか?
global x
グローバル変数をローカルで変更する必要がある場合にのみ役立つことがわかっています。