MST

星途 面试题库

面试题:Python中闭包的定义及简单应用

请阐述Python中闭包的定义,并编写一个简单的闭包示例,说明闭包是如何保存局部变量状态的。
41.8万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

闭包定义

在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。这就体现了闭包对外部函数局部变量状态的保存。