之前我們已經看過如何在 Python 中建立巢狀函式。
如果從函式中返回一個巢狀函式,那個巢狀函式可以訪問該函式中定義的變數,即使該函式已經不再活動。
以下是一個簡單的計數器範例。
def counter():
count = 0
def increment():
nonlocal count
count = count + 1
return count
return increment
increment = counter()
print(increment()) # 1
print(increment()) # 2
print(increment()) # 3
我們返回了 increment()
內部函式,而該函式仍然可以訪問到 count
變數的狀態,即使 counter()
函式已經結束。