Python UnboundLocalError 异常
如下,当我们在函数中对全局变量重新赋值的时候就会出现 UnboundLocalError 异常,虽然 num 这个变量在外部已经被定义成全局变量,但是如果在函数中
进行重新赋值操作,python 会自动把这个变量当成是在函数这个作用域内的变量来对待。因此,如果你要对变量进行重新赋值操作,那就必须先用global进行声明。
In [1]: num = 10 In [2]: def fun(): ...: num += 1 ...: print(num) ...: In [3]: fun() --------------------------------------------------------------------------- UnboundLocalError Traceback (most recent call last) <ipython-input-3-69e6a439c52d> in <module>() ----> 1 fun() <ipython-input-2-9ae092f6ca83> in fun() 1 def fun(): ----> 2 num += 1 3 print(num) 4 UnboundLocalError: local variable 'num' referenced before assignment