我已经阅读了很多有关闭包的文章,我想我理解它们,但是我希望自己能为自己和其他人提供一个清晰而清晰的解释。我正在寻找一个简单的解释,可能有助于我理解在哪里以及为什么要使用它们。
3 回答
湖上湖
TA贡献2003条经验 获得超2个赞
很简单:一个函数可以从包含的作用域引用变量,可能是在控制流离开该作用域之后。最后一点非常有用:
>>> def makeConstantAdder(x):
... constant = x
... def adder(y):
... return y + constant
... return adder
...
>>> f = makeConstantAdder(12)
>>> f(3)
15
>>> g = makeConstantAdder(4)
>>> g(3)
7
注意,12和4分别在f和g内部“消失”,此功能使f和g正确闭合。
添加回答
举报
0/150
提交
取消