Python闭包——一个让人又爱又恨的东西

              学到闭包,我也是崩溃的,查阅了一部分资料,再加上我自己的理解,总结下我的看法。

先看定义:

         闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。

        看到定义感到一脸懵?没错,我也是一脸懵。

        什么意思呢闭包,说白了,就是一个函数(外函数)套了一个函数(内函数),内函数它使用了外函数的变量完成相关处理之后,把自己封装成了一个包,供外函数返回。

       其实外函数返回的不再是一个值,而是它自己内部的一个函数(内函数)。希望这么想你能够晕出来。

       不知道能不能理解,那么我们上一段代码,大家感受一下。

def decor(func):              #外层函数
    def money():              #内层函数
        print("给你钱")
        func()
        print("还我钱!!!")
    return money              #内层函数将自己打成一个包供外函数返回,即所谓的闭包函数



def sell():
    print("销售有钱了卖东西.")


res = decor(sell)     #调用外函数
res()                      #外函数的返回值,即返回的是外函数中套的内函数

posted on 2019-08-05 15:02  离影花未央  阅读(224)  评论(0编辑  收藏  举报

导航