python 報錯: local variable 'xxx' referenced befo...

 

local variable 'xxx' referenced before assignment


      在外面定義了一個變量 xxx ,而後在python的一個函數裏面引用這個變量,並改變它的值,結果報錯local variable 'xxx' referenced before assignment,代碼以下:python

[python]  view plain copy
  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關鍵字是用來引用全局變量的,嘗試了一下,果真能夠了:app

[python]  view plain copy
  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關鍵字。函數

相關文章
相關標籤/搜索