Python中的global關鍵字


Python程式中不同的變數具有不同的作用域。根據變數的宣告位置,它可能在函式內部可訪問,也可能不可訪問。有時我們需要從其當前作用域外部修改函式內部存在的變數。在這種情況下,我們使用global關鍵字以及變數名。

以下是關於global關鍵字的關鍵點:

  • 在函式外部宣告的變數預設為全域性變數。

  • 我們對函式內部的變數使用global關鍵字,以便可以修改它。

  • 如果沒有global關鍵字,函式內部的變數預設為區域性變數。

無global關鍵字

在下面的例子中,我們將看到在沒有global關鍵字的情況下變數是如何變化的。這將幫助我們理解在下一個程式中global關鍵字有何不同。在下面的例子中,我們試圖在函式內部修改全域性變數。但是會發生錯誤,因為我們不能在函式內部修改全域性變數。

示例

 線上演示

var = 321
# function to modify the variable
def modify():
   var = var * 2
   print(var)
# calling the function
modify()

輸出

執行以上程式碼將得到以下結果:

UnboundLocalError: local variable 'var' referenced before assignment

使用global關鍵字

現在我們在函式內部宣告變數以及global關鍵字。這使得變數可修改。

示例

 線上演示

var = 321
# function to modify the variable
def modify():
   global var
   var = var * 2
   print(var)
# calling the function
modify()

輸出

執行以上程式碼將得到以下結果:

642

巢狀函式中的global關鍵字

如果我們必須使用巢狀函式,則必須在內部函式中宣告global關鍵字,以便可以修改變數。

示例

def outer_func():
   var = 321
# function to modify the variable
   def modify():
      global var
   var = var * 2
   print(var)
# calling the function
   modify()
outer_func()

輸出

執行以上程式碼將得到以下結果:

642

更新於:2019年10月17日

787 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.