Python闭合器

33 阅读1分钟

我们之前已经看到了如何在 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() 内部函数,即使counter() 函数已经结束,它仍然可以访问count 变量的状态。