学到闭包,我也是崩溃的,查阅了一部分资料,再加上我自己的理解,总结下我的看法。
先看定义:
闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。
看到定义感到一脸懵?没错,我也是一脸懵。
什么意思呢闭包,说白了,就是一个函数(外函数)套了一个函数(内函数),内函数它使用了外函数的变量完成相关处理之后,把自己封装成了一个包,供外函数返回。
其实外函数返回的不再是一个值,而是它自己内部的一个函数(内函数)。希望这么想你能够晕出来。
不知道能不能理解,那么我们上一段代码,大家感受一下。
def decor(func): #外层函数 def money(): #内层函数 print("给你钱") func() print("还我钱!!!") return money #内层函数将自己打成一个包供外函数返回,即所谓的闭包函数 def sell(): print("销售有钱了卖东西.") res = decor(sell) #调用外函数 res() #外函数的返回值,即返回的是外函数中套的内函数