阅读量:
UnboundLocalError local variable ‘xxx‘ referenced before assignment
错误详情
在Python程序中引用函数时,有时会出现这样的错误:
UnboundLocalError: local variable 'xxx' referenced before assignment
这个错误的意思是:局部变量赋值前被引用
先看一下出错程序:
按照Python的内部空间分配来说,num是属于全局变量,在函数内部是能够读取到的。在下面的例子中就可以体现: 那么为什么还会出现异常呢? 原来在Python中,函数内部对变量赋值进行修改后,该变量就会被Python解释器认为是局部变量而非全局变量。 (将num += 1重新书写为num = num + 1)当程序执行 num = num + 1 的时候,由于需要修改num 变量,因此num 已经成了局部变量。但在这之前 num 变量在函数空间中还没有定义,因此 num + 1中的num 变量出现错误。