local variable 'xxx' referenced before assignment


這個問題很囧,在外面定義了一個變量 xxx ,然后在python的一個函數或類里面引用這個變量,並改變它的值,結果報錯local variable 'xxx' referenced before assignment,代碼如下:

1 xxx = 23  
2 def PrintFileName(strFileName):   
3     if xxx == 23:  
4         print strFileName  
5         xxx = 24  
6   
7 PrintFileName("file")

 

      錯誤的意思就是xxx這個變量在引用前還沒有定義,這上面不是定義了么?但是后來我把xxx = 24這句去掉之后,又沒問題了,后來想起python中有個global關鍵字是用來引用全局變量的,嘗試了一下,果然可以了:

1 xxx = 23  
2 def PrintFileName(strFileName):  
3     global xxx  
4     if xxx == 23:  
5         print strFileName  
6         xxx = 24  
7   
8 PrintFileName("file")

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM