區域性變數
如果名稱繫結在函式內部,則預設情況下只能在函式內訪問:
def foo():
a = 5
print(a) # ok
print(a) # NameError: name 'a' is not defined
控制流構造對範圍沒有影響(except
除外),但是訪問尚未分配的變數是一個錯誤:
def foo():
if True:
a = 5
print(a) # ok
b = 3
def bar():
if False:
b = 5
print(b) # UnboundLocalError: local variable 'b' referenced before assignment
常見的繫結操作是賦值,for
迴圈和增強賦值,例如 a += 5