1.闭包
-
如果一个函数内部定义了另外一个函数,那么外边的函数叫做外函数,内部的函数叫做内函数
-
如果在一个外部函数当中定义了一个内部函数,并且外部函数的返回值是内部函数,这就构成了一个闭包,内部函数被称为闭包函数
2.闭包成立的条件
-
函数嵌套函数
-
内部函数引用外部函数的变量
-
外部函数返回内部函数
3.最简单的闭包(不是很严谨)
# 外部函数
def outer():# 内部函数def inner():print("闭包函数演示")# 将内部函数返回return innerfn = outer() # fn 和 inner 函数一样了
fn() # 相当于调用了 inner 函数
4.练习:严格意义上的闭包函数
-
内部函数使用外部函数的变量
-
应用场景:闭包主要应用于装饰器
# 外部函数
def outer1(x):y = 10# 内部函数def inner1():# 在内部函数中使用外部函数的变量print(x + y)# 返回内部函数return inner1func = outer1(12) # func =====> inner1
func() # 22
5.总结
-
闭包是一个函数内部定义另一个函数,外部函数返回内部函数,内部函数引用外部函数的变量。闭包主要应用于装饰器,内部函数使用外部函数的变量。最简单闭包演示中,外部函数返回内部函数,相当于调用了内部函数。