闭包的定义:
在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包。
闭包的条件
- 外部函数中定义了内部函数
- 外部函数有返回值
- 返回值是内部函数名
- 内部函数引用了外部函数的变量
示例代码:
def outer(a,b):
print("这是一个闭包的例子")
def inner():
print(a,b)
return inner
c = outer(10,20)
c()
运行结果:
闭包总结
- 闭包似优化了变量,原来需要类和对象完成的工作现在闭包也可以完成
- 由于闭包引用了外部函数的局部变量,则外部函数的局部变量没有及时释放,消耗内存
- 闭包的好处,使代码变得整洁,便于阅读
- 闭包是理解装饰器的基础