在 Python 中,變數的範圍會影響到它在程式中的可見性以及生命週期。
主要分為兩大類:區域變數 (local variable) 和全域變數 (global variable)。
定義: 在函數內部定義的變數稱為區域變數。
作用域: 僅在定義它的函數內有效。
生命週期: 當函數執行完畢,區域變數就會被銷毀。
def my_function():
x = 10 # x 是區域變數
print(x)
my_function()
# 在函數外部嘗試訪問 x 會報錯,因為 x 只在 my_function 內有效
定義: 在函數外部定義的變數稱為全域變數。
作用域: 在整個程式中都有效,包括在函數內。
生命週期: 從定義開始,直到程式結束。
x = 20 # x 是全域變數
def my_function():
print(x) # 在函數內可以直接訪問全域變數
my_function()
print(x)
在函數內修改全域變數:
直接修改會產生一個新的區域變數,並不會改變全域變數的值。
要修改全域變數,需要使用 global 關鍵字。
globe_x = 10
def change_global():
global globe_x
globe_x = 20
change_global()
print(globe_x) # 输出 20
命名衝突: 如果區域變數和全域變數名稱相同,在函數內部會優先使用區域變數。
區域變數和全域變數是 Python 中非常重要的概念。
理解它們的作用範圍和生命週期,有助於寫出更清晰、更易於維護的程式碼。
在一般情況下,應該優先使用區域變數,並儘量避免過多地使用全域變數。
使用 global 關鍵字會直接操作全域變數,修改後的結果會反映在程式的所有部分。