这是个内嵌的闭包函数吗?
本帖最后由 lzb1001 于 2023-6-10 09:37 编辑def make_repeat(n):
return lambda s: s * n
---lambda函数在外部函数make_repeat()内
---lambda函数引用了外部函数make_repeat的变量
基于这两点,lambda函数是不是可以看做是外部函数make_repeat()内嵌的闭包?
是的,你完全正确。这个 lambda 函数是一个闭包。
在Python中,闭包是一个函数对象,它有两个重要的特性和能力:
1. 它可以直接或间接地访问封闭函数(即,包含闭包的函数)的变量。
2. 它被绑定到了那些变量的生命周期中,即使封闭函数的执行已经结束,它也能继续使用那些变量。
在你给出的代码中, lambda 函数访问并使用了 make_repeat 函数的变量 n ,并且在 make_repeat 函数执行结束后,返回的 lambda 函数依然可以访问和使用变量 n ,所以这个 lambda 函数就是一个闭包。
页:
[1]