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教程: