闭包的确切用途是在函数内部创建一个封闭的环境,使得函数内部的变量可以在函数执行完毕后仍然被访问和操作。
以下是一个使用闭包的例子,其中函数 outer 返回了一个内部函数 inner,内部函数可以访问外部函数的变量 count:
def outer():
count = 0
def inner():
nonlocal count
count += 1
print(count)
return inner
closure = outer()
closure() # 输出:1
closure() # 输出:2
在这个例子中,outer 函数创建了一个局部变量 count 并定义了内部函数 inner,内部函数 inner 通过 nonlocal 关键字声明了对 count 的引用。当我们调用 outer 函数时,它返回了内部函数 inner 的引用,并保留了 count 的值。我们可以多次调用 closure 函数,每次调用都会增加 count 的值并进行打印。
闭包的用途包括但不限于:
总结起来,闭包可以提供一种方便的方式来操作和共享函数内部的变量,同时保持其对外部不可见。