python中在方法中引用全局變量

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


xxx = 23  
def PrintFileName(strFileName):   
    if xxx == 23:  
        print strFileName  
        xxx = 24  
  
PrintFileName("file")  

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

xxx = 23  
def PrintFileName(strFileName):  
    global xxx  
    if xxx == 23:  
        print strFileName  
        xxx = 24  

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

global

關鍵字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章