Python global 關鍵字



Python 的 global 關鍵字允許我們修改當前作用域之外的變數。它是一個 區分大小寫 的關鍵字。它用於建立 全域性變數。在函式外部或全域性作用域中宣告的變數稱為 全域性 變數。

全域性 變數可以在函式內部或外部訪問。當我們在 if-else 語句內部使用 global 關鍵字時,它會導致 SyntaxError(語法錯誤)。

當我們在函式外部建立一個變數時,它預設是 全域性 變數,不需要在它前面指定 global 關鍵字。我們使用 global 關鍵字在函式內部讀取和寫入全域性變數。

用法

以下是 Python global 關鍵字的用法:

global variable_name

其中,variable_name 是我們需要宣告為全域性的變數的名稱。

示例

以下是 Python global 關鍵字的基本示例:

var1 = 100
print("Variable before function :", var1)
def fun1():
    global var1
    var1 = 879
    print("Variable inside the function :",var1)    
fun1()
print("Variable outside the function :",var1)

輸出

以下是上述程式碼的輸出:

Variable before function : 100
Variable inside the function : 879
Variable outside the function : 879

在巢狀函式中使用 global 關鍵字

當我們在一個函式內部定義另一個函式時,稱為 巢狀函式。我們也可以在巢狀函式內部使用 global 關鍵字。

示例

這裡,我們定義了 巢狀函式,並在 fun2() 內部建立了全域性變數。在 fun2 中,num 對 global 關鍵字沒有影響。在呼叫 fun2() 之前和之後,num 都取區域性變數的值,即 24。在 fun1() 外部,num 將取全域性變數的值,即 100,因為我們在 num 中使用了 global 關鍵字在 fun2() 內部建立了一個全域性變數,所以如果我們在 fun2() 內部進行任何更改,這些更改將出現在區域性作用域(即 fun1())之外。

def fun1():
    num = 24
    def fun2():
        global num
        num = 100
    print("Before calling fun1(): ", num)
    fun2()
    print("After calling fun2(): ", num)
fun1()
print("num Variable Outside both function(): ", num)

輸出

以下是上述程式碼的輸出:

Before calling fun1():  24
After calling fun2():  24
num Variable Outside both function():  100

在 if-else 語句中使用 global 關鍵字

當在 if-else 內部使用 global 關鍵字時,它會引發 SyntaxError(語法錯誤)。

示例

下面是一個在if-else中使用global關鍵字的示例。

var1 = 80
if True:
    global var1
    var1 = 234
    print(var1)

輸出

以下是上述程式碼的輸出:

File "/home/cg/root/70237/main.py", line 3
    global var1
    ^^^^^^^^^^^
SyntaxError: name 'var1' is assigned to before global declaration
python_keywords.htm
廣告