関数内のローカル変数の値を、ネストした関数から変更する
f()
で定義したローカル変数b
の値を、ネスト関数g()
から変更するにはどうすれば良いのでしょうか。
global a, b
ではうまくいかず、さりとて代案も思いつきませんでした。
a = "global!!"
def f():
global a
print(a)
b = "local 1"
def g():
global a
print(a)
print(b) # local variable 'b' referenced before assignment
b = "local 2"
print(b)
g()
print(a)
print(b)