在 Python 中,通常情况下,函数只能访问其定义时的局部变量和全局变量。局部变量在函数执行完毕后会被销毁,无法在函数外部直接访问。然而,闭包允许内部函数在外部函数执行完毕后,仍然能够访问外部函数的局部变量
pythondef example_function():
x = 10
print(x)
example_function()
# print(x) # 这会导致 NameError,因为 x 是 example_function 的局部变量,无法在函数外部访问。
pythondef outer_function():
x = 10
def inner_function():
return x
return inner_function
closure = outer_function()
print(closure()) # 输出: 10
inner_function 是一个闭包,它捕获了 outer_function 的局部变量 x。即使 outer_function 已经执行完毕,inner_function 仍然可以访问 x
总结:闭包是由一个外部函数和一个内部函数构成的。内部函数可以访问外部函数的局部变量,日常高频应用在装饰器场景中;
本文作者:lixf6
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!