在Python中,變量的作用域(Scope)決定了變量的可見性和生命周期。Python有三種基本的作用域:局部作用域(Local)、巢狀作用域(Enclosing)和全域作用域(Global)。此外,還有一個特殊的內建作用域(Built-in)。理解這些作用域對於編寫清晰、可維護的程式碼至關重要。
局部作用域(Local Scope)
defgreet(name):
greeting = "Hello, " + name + "!"
print(greeting) # greeting 在這裏可見
greet("Alice")
# greet() 呼叫後,greeting 在這裏不可見
「特點」
局部變量只在函式內部有效。
函式執行完畢後,局部變量會被銷毀。
巢狀作用域(Enclosing Scope)
defouter():
x = "local to outer"
definner():
print(x) # inner 可以存取 x
inner()
outer()
「特點」
內部函式可以存取外部函式的局部變量。
外部函式不能存取內部函式的局部變量。
全域作用域(Global Scope)
x = "global"
deftest():
print(x) # 可以存取全域變量 x
test()
「特點」
全域變量在整個程式中都可見。
可以在函式內部修改全域變量,但需要使用
global
關鍵字。
內建作用域(Built-in Scope)
print("Hello, World!") # 使用內建函式 print
「特點」
內建作用域中的變量和函式是Python預定義的。
它們可以在任何其他作用域中存取。