闭包的确切用途是在函数内部创建一个封闭的环境,使得函数内部的变量可以在函数执行完毕后仍然被访问和操作。
以下是一个使用闭包的例子,其中函数 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
的值并进行打印。
闭包的用途包括但不限于:
总结起来,闭包可以提供一种方便的方式来操作和共享函数内部的变量,同时保持其对外部不可见。