介绍
函数调用完,函数内定义的变量都会被销毁,但有时候我们需要保存函数内的这个变量,每次在这个变量的基础上完成一系列的操作
定义:
在函数的嵌套下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,那么这个使用外部函数变量的内部函数称为闭包
构成条件
1、在函数嵌套的前提下
2、内部函数使用了外部函数的变量、参数
3、外部函数返回了内部函数
实例
# 定义一个外部函数
def aa():
a = 10
# 定义一个内部函数
def bb(b):
sum = a + b
print("结果是:", sum)
return bb
# 获取闭包对象
A1 = aa()
# 执行闭包
A1(20) # 结果是: 30
A1(30) # 结果是: 40
作用
闭包可以保存外部函数内的变量,不会随着外部函数调用完而销毁
(若外部函数的变量就没有及时释放,会消耗内存)