Python閉包

我們之前已經看過如何創建一個Python中的嵌套函數

如果從一個函數返回一個嵌套函數,則即使該函數不再處於活動狀態,該嵌套函數也可以訪問該函數中定義的變量。

這是一個簡單的反例。

def counter():
    count = 0
<span style="color:#66d9ef">def</span> <span style="color:#a6e22e">increment</span>():
    nonlocal count
    count <span style="color:#f92672">=</span> count <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>
    <span style="color:#66d9ef">return</span> count

<span style="color:#66d9ef">return</span> increment

increment = counter()

print(increment()) # 1 print(increment()) # 2 print(increment()) # 3

我們返回increment()內部功能,並且仍然可以訪問count即使counter()功能已結束。


更多python教程: