此代码
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)())
我收到错误显示
发生了什么事? 以及如何理解python3的关闭。UnboundLocalError:赋值前引用的局部变量'x'
答案 0 :(得分:2)
def gen(x):
def f():
nonlocal x # add this line
x += 1
return x
return f
print(gen(1)())