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

 

 

 

 

 

 

    

posted @ 2019-01-22 11:01  孔雀东南飞  阅读(2005)  评论(0编辑  收藏  举报