Python global 語句

如果你想給一個在程序頂層的變量賦值(也就是說它不存在於任何作用域中,無論是函數還是類),那麼你必須告訴 Python 這一變量並非局部的,而是全局(Global)的。我們需要通過 global 語句來完成這件事。因爲在不使用 global 語句的情況下,不可能爲一個定義於函數之外的變量賦值。
你可以使用定義於函數之外的變量的值(假設函數中沒有具有相同名字的變量)。然而,這種方式不會受到鼓勵而且應該避免,因爲它對於Python教程的程序讀者來說是含糊不清的,無法弄清楚變量的定義究竟在哪。而通過使用 global 語句便可清楚看出這一變量是在最外邊的代碼塊中定義的。

案例(保存爲 function_global.py):



def func():
    global x

    print('x is', x)
    x = 2
    print('Changed global x to', x)


func()
print('Value of x is', x)

輸出:

x is 50
Changed global x to 2
Value of x is 2

它是如何工作的

global 語句用以聲明 x 是一個全局變量——因此,當我們在函數中爲 x 進行賦值時,這一改動將影響到我們在主代碼塊中使用的 x 的值。

你可以在同一句 global 語句中指定不止一個的全局變量,例如 global x, y, z。

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