要形成闭包,必须满足以下两个条件:
1. 在一个函数内部定义了另一个函数。
2. 内部函数引用了外部函数的变量。
示例代码如下:
```python
def outer_function(x):
def inner_function(y):
return x + y
return inner_function
closure = outer_function(10)
result = closure(5)
print(result) # 输出15
```
在上述示例中,`outer_function` 是外部函数,`inner_function` 是内部函数。`outer_function` 接收一个参数 `x`,并返回 `inner_function`。`inner_function` 引用了 `outer_function` 的参数 `x`,形成了闭包。最后,我们通过 `closure(5)` 调用闭包,并得到结果 15。
闭包可以在函数内部保持状态,即使外部函数已经返回。这使得闭包非常灵活和强大,可以用来实现一些高级的编程技巧。