要形成閉包,必須滿足以下兩個條件:
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。
閉包可以在函數內部保持狀態,即使外部函數已經返回。這使得閉包非常靈活和強大,可以用來實現一些高級的編程技巧。