有的时候容将闭包和匿名函数混淆

什么时候会有闭包的问题呢?只要在设计嵌套函数时才有闭包问题。关键之处在于它能不能访问定义体之外定义的非全局变量。

闭包是一种函数,他会保留定义函数时存在的自由变量的绑定。(自由变量:未在本地作用域中绑定的变量)

闭包的理解

 

注意下面的例子:

闭包的理解

这时候会报错

count 是数字或者任意不可变的类型时, count 被赋值,则就变成了局部变量

 

为了解决上述问题:

python3中用nonlocal 关键字声明

闭包的理解

python2中呢,可以定义一个可变类型的对象,然后将对象绑定给一个自由变量

相关文章:

  • 2022-12-23
  • 2021-11-13
  • 2021-11-22
  • 2021-09-02
猜你喜欢
  • 2022-12-23
  • 2021-07-01
  • 2022-02-08
  • 2022-01-16
相关资源
相似解决方案