Skip to main content

没搞明白的知识点

python的闭包

不明白的地方:

  • 不明白应用场景
  • 不明白与类的区别

网友评论:

  • 闭包感觉是利用机制保留栈帧,然后把栈帧地址导出,方便外部调用变量吧。感觉内部能够调用外部变量是一个假象。

应用场景:

  • 闭包避免了使用全局变量,此外,闭包允许将函数与其所操作的某些数据(环境)关连起来。这一点与面向对象编程是非常类似的,在面对象编程中,对象允许我们将某些数据(对象的属性)与一个或者多个方法相关联。
  • 一般来说,当对象中只有一个方法时,这时使用闭包是更好的选择。(意思是能用对象完全代替闭包?)
  • 装饰器

个人总结,困惑

因为闭包存在延迟绑定的特性,同时也是坑,而且对象完全可以代替闭包函数,再者闭包函数和对象两者的可读性肯定是对象更明确吧,那么都2022年python3都要出11版本了,闭包还有存在实际使用的意义吗。