面试题答案
一键面试闭包定义
在Python中,闭包是一种函数对象,它可以记住定义时的环境变量,即使在定义环境已经不存在的情况下,仍然可以访问这些变量。具体来说,当一个内部函数在其外部函数被执行完毕后仍然能访问外部函数的局部变量时,就形成了闭包。
闭包示例
def outer_function(x):
def inner_function(y):
return x + y
return inner_function
closure = outer_function(5)
result = closure(3)
print(result)
闭包保存局部变量状态说明
在上述代码中,outer_function
接收一个参数 x
,并返回 inner_function
。当 outer_function
执行完毕后,其局部变量 x
本应被销毁,但由于 inner_function
构成了闭包,它记住了 outer_function
执行时的环境,包括 x
的值。所以在调用 closure(3)
时,inner_function
仍然可以访问并使用 x
的值,将其与传入的 y
(值为3)相加,最终返回8。这就体现了闭包对外部函数局部变量状态的保存。