闭包(Closure)是Python中的一个重要概念,它允许一个函数记住并访问其创建者的局部变量,即使是在创建者函数执行完毕后,闭包函数仍然可以访问这些变量。闭包常常用于实现数据封装和函数柯里化(Currying)等高级功能。
下面是一个简单的闭包例子:
```python
def outer_function(x):
def inner_function(y):
return x + y
return inner_function
closure_function = outer_function(10) outer_function 返回 inner_function
result = closure_function(5) 调用 closure_function,它又会调用 inner_function
print(result) 输出 15
在这个例子中,`outer_function` 内部定义了一个名为 `inner_function` 的函数,并返回这个函数。当我们调用 `outer_function` 并传入参数 `10` 时,它返回 `inner_function`,这个返回的函数就是我们所说的闭包。我们可以像调用普通函数一样调用这个闭包函数 `closure_function`,并传入参数 `5`,它内部会调用 `inner_function`,并返回结果 `15`。
需要注意的是,闭包函数可以访问其创建者 `outer_function` 的局部变量 `x`,即使 `outer_function` 已经执行完毕。在这个例子中,`closure_function` 记住并访问了 `x` 的值 `10`,所以当它被调用时,能够正确地返回 `15`。
希望这个解释能帮助你理解Python中闭包的概念和它为什么能够“返还给函数”。