闭包概念、特性、使用场景与注意事项
2026/6/15 0:21:13 网站建设 项目流程

博客导语

闭包是装饰器底层基础,新手极易混淆嵌套函数和闭包。明确闭包判定三要素,讲解变量生命周期、内存常驻坑点。


一、闭包三大判定条件(缺一不可)

  1. 存在函数嵌套:内层函数、外层函数

  2. 内层函数引用外层函数的局部变量

  3. 外层函数返回内层函数对象


二、代码示例

def outer(x): def inner(): print(x) # 引用外层局部变量 return inner f = outer(10) f() # 10

三、闭包核心特性

外层函数执行完毕后,外层局部变量本该销毁,但闭包会延长变量生命周期,常驻内存,不会被垃圾回收。


四、nonlocal关键字

修改外层非全局局部变量必须用nonlocal,global仅修改全局变量,二者不能混用。


五、优缺点与场景

优点:保护数据、无需全局变量;缺点:内存常驻、容易内存泄漏。场景:装饰器、计数器、缓存统计。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询