Python 是一種動態類型的腳本語言,變量可以在程序中任何地方使用和修改。Python 變量作用域分為兩種:全局變量和局部變量。
全局變量
全局變量在函數外部定義,可以被所有函數訪問。但是,在函數內部如果想修改全局變量的值,需要使用global
關鍵字。
num = 10 def change_num(): global num num = 20 print(num) # Output: 10 change_num() print(num) # Output: 20
局部變量
局部變量是在函數內部定義的變量,只能在函數內部訪問。函數執行結束后,局部變量會被銷毀。
def greeting(): message = "Hello, world!" print(message) greeting() # Output: Hello, world! print(message) # NameError: name 'message' is not defined
非局部變量
非局部變量指的是在嵌套函數中使用的變量,不是全局變量,也不是局部變量。如果想在嵌套函數中訪問外部函數中定義的變量,需要使用nonlocal
關鍵字。
def outer(): num = 10 def inner(): nonlocal num num = 20 inner() print(num) # Output: 20 outer()
需要注意的是,Python 的變量作用域與其他語言不同,不需要使用聲明變量的關鍵字,只需要給變量賦值即可。另外,在函數內部如果訪問未定義的變量,會拋出NameError
異常。