如何在Python中宣告全域性變數?


什麼是全域性變數?

全域性變數是在函式外部宣告的變數,但我們需要在函式內部使用它。

示例

 線上演示

def func():
   print(a)
a=10
func()

輸出

10

這裡,變數a是全域性的。因為它是在函式外部宣告的,並且也可以在函式內部使用。因此,變數a的作用域是全域性的。

我們將看看如果我們在函式內部建立與全域性變數同名的變數會發生什麼。

在上面的例子中,變數a在函式外部宣告,因此是全域性的。

如果我們在函式內部宣告另一個同名變數並賦予不同的值,該變數將充當函式的區域性變數,其作用域將限制在函式內部。在函式外部,全域性變數將保持其原始值。

可以透過一個例子更好地理解。

示例

 線上演示

a=10
def func():
   a=5
print("Inside function:",a)
func()
print("Outside function:",a)

輸出

Inside function: 5
Outside function: 10

在上面的例子中,a是全域性變數,其值為10。稍後呼叫func()。

在func()內部,聲明瞭另一個值為a的變數,其作用域僅限於函式內部。因此,稍後在函式外部列印a的值時,它將保留與全域性變數相同的原始值10。

關鍵字:global

當您需要在函式內部宣告全域性變數時,使用關鍵字global。

在函式內部宣告的普通變數的作用域僅到函式結束。

但是,如果您也希望在函式外部使用該變數,請在宣告變數時使用global關鍵字。

透過示例實現來了解兩者之間的區別。

示例

def func():
   a=5
   print("Inside function:",a)
func()
print("Outside function:",a)

輸出

Inside function: 5
Traceback (most recent call last):
print("Outside function:",a)
NameError: name 'a' is not defined

在上面的例子中,由於a是區域性變數,因此無法在函式外部訪問它的值。因此,在函式外部訪問它的值會引發異常。

使用global關鍵字

如果我們使用global關鍵字宣告變數a,則可以解決上述示例中引發的異常。

示例

 線上演示

def func():
   global a
   a=5
   print("Inside function:",a)
func()
print("Outside function:",a)

輸出

Inside function: 5
Outside function: 5

在上面的例子中,變數a是全域性的,因此也可以在函式外部訪問它的值。

更新於:2021年3月11日

4K+瀏覽量

啟動您的職業生涯

完成課程獲得認證

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