python3中闭包的定义是什么
时间: 2023-06-25 08:06:42 浏览: 55
在 Python 3 中,闭包(closure)是指一个函数(称为内部函数)可以访问另一个函数(称为外部函数)中定义的非全局变量(称为自由变量),即使外部函数已经执行完毕,内部函数仍然可以访问到外部函数中的这些变量。
闭包的定义可以通过以下示例代码理解:
```
def outer_function(x):
def inner_function(y):
return x + y
return inner_function
closure = outer_function(10)
result = closure(5)
print(result) # Output: 15
```
在这个例子中,`outer_function` 是外部函数,它接收一个参数 `x`,并返回内部函数 `inner_function`。`inner_function` 接收一个参数 `y`,并将 `x` 和 `y` 相加后返回结果。当 `outer_function` 被调用时,它返回 `inner_function`,并将 `x` 的值设置为 10。然后将 `inner_function` 赋值给变量 `closure`。最后,`closure` 被调用,并将参数值 5 传递给它,它返回 15,这是 `10 + 5` 的结果。
在这个例子中,`inner_function` 访问了 `outer_function` 中定义的变量 `x`,尽管 `outer_function` 已经执行完毕。这是因为 `inner_function` 形成了一个闭包,它包含了对 `x` 的引用。