天天看點

local variable 'xxx' referenced before assignment

定義了一個全局變量 s ,Python的一個函數裡面引用這個變量,并改變它的值,

結果報錯local variable 'xxx' referenced before assignment,

代碼如下:

s = 2  

def fun():   

    if s== 2:  

        print s

        s= 3 

      錯誤的意思就是s這個變量在引用前還沒有定義,這上面不是定義了麼?但是後來我把s= 2這句去掉就好了。後來想起python中有個global關鍵字是用來引用全局變量的

     golbal s

        print s

原來在python的函數中和全局同名的變量,如果你有修改變量的值就會變成局部變量,在修改之前對該變量的引用自然就會出現沒定義這樣的錯誤了,如果确定要引用全局變量,并且要對它修改,必須加上global關鍵字。

本文轉自 河北李曉東  51CTO部落格,原文連結:http://blog.51cto.com/lixiaodong2016/1951369,如需轉載請自行聯系原作者