getting UnboundLocalError: local variable referenced before assignment error
我正在获取UnboundLocalError:尝试运行此代码时,在赋值错误之前引用了局部变量。根据立法会的规则,这应该运行良好。
1 2 3 4 5 6 7 | def xyz(): count = 1 def xyz_inner(): count += 1 print count xyz_inner() print count |
这里的问题是,内部函数中的
在
请参阅未绑定的本地错误
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def xyz(): count = 1 def xyz_inner(): count += 1 print count, locals() xyz_inner() print count print hasattr(globals, 'count') print hasattr(xyz, 'count') >>> False False |
在任何可变对象(如
它的工作原理是:
1 2 3 4 5 6 7 8 9 | def xyz(): count = {'value': 1} def xyz_inner(): count['value'] += 1 print count['value'], xyz_inner() print count xyz() |
参见python2.7中非本地的python闭包