这段代码
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的闭包。
发布于 2013-03-23 03:50:14
def gen(x):
def f():
nonlocal x # add this line
x += 1
return x
return f
print(gen(1)())https://stackoverflow.com/questions/15583110
复制相似问题