このコード
def gen(x):
def f():
return x
return f
print(gen(1)())
うまく機能します。
しかし、このコードを実行すると、
def gen(x):
def f():
x += 1
return x
return f
print(gen(1)())
エラーが発生したことは次のことを示しています
UnboundLocalError:割り当て前に参照されるローカル変数'x'
それがどうなったのか?およびpython3のクロージャを理解する方法。