之前我們已經看過如何在 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() 函式已經結束。