UnboundLocalError: local variable 'a' referenced before assignment
Posted youhongliang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnboundLocalError: local variable 'a' referenced before assignment相关的知识,希望对你有一定的参考价值。
首先,上一段代码:
1 def out(): 2 a=1 3 def inner(): 4 a+=1 5 print(a) 6 return inner 7 func = out() 8 func()
初略看上去没有什么问题,运行之后报错:UnboundLocalError: local variable ‘a‘ referenced before assignment 翻译成中文:UnboundLocalError:在赋值之前引用的本地变量‘a‘。
那么问题来,这是个闭包函数,为啥不能引用本地的变量‘a‘呢?
a+=1 => a=a+1
也就是说,在给a赋值的时候,a已经被应用了,再引用a加1时,是重复引用,所以报错。
再上一段代码:
def out(): a=1 def inner(): b=a+1 print(b) return inner func = out() func()
如果你有幸看到这篇博客,请点个赞!
以上是关于UnboundLocalError: local variable 'a' referenced before assignment的主要内容,如果未能解决你的问题,请参考以下文章
UnboundLocalError: local variable 'range' referenced before assignment
Python报错:UnboundLocalError: local variable ‘xxx‘ referenced before assignment
Python报错:UnboundLocalError: local variable ‘xxx‘ referenced before assignment
python报错:UnboundLocalError: local variable ‘np‘ referenced before assignment
python 错误--UnboundLocalError: local variable '**' referenced before assignment
全局变量报错:UnboundLocalError: local variable 'xxxxx' referenced before assignment