问题描述
考虑此功能:
def g():
x = []
def f():
x.append([0])
print(x)
pass
return f
调用:
test = g()
test()
我得到以下输出:
Out: [[0]]
我们可以重新初始化测试函数并多次调用:
test = g()
for i in range(3):
test()
产生以下输出:
Out: [[0]]
[[0],[0]]
[[0],[0],[0]]
但是,定义以下功能:
def j():
x = 1
def f():
x += 1
print(x)
pass
return f
并调用它:
test = j()
test()
导致错误:
UnboundLocalError: local variable 'x' referenced before assignment
列表似乎在内部函数作用域中,而值不在。为什么会这样?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)