我已经简要地浏览了几十个关于UnboundLocalErrorpython 嵌套函数的qus ,我以为我理解了,直到我用自定义类实例尝试它def fn1(): a = 1 def fn1a(): print(a) a += 1 print(a) fn1a()class B: v = 1def fn2(): b = B() def fn2a(): print(b.v) b.v += 1 print(b.v) fn2a()fn2() # prints 1 then 2fn1() # raises UnboundLocalError为什么错误没有被提出fn2?
1 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
因为您没有分配给非本地名称。你用过一个,但没关系;您分配了它的一个属性,而没有更改名称本身所绑定的内容。
请注意,如果b
是列表或字典并且您修改了其成员之一,则这将完全相同。
添加回答
举报
0/150
提交
取消