【发布时间】:2013-03-23 03:45:52
【问题描述】:
这段代码
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的闭包。
【问题讨论】:
标签: python python-3.x closures