zoukankan      html  css  js  c++  java
  • Python闭包——一个让人又爱又恨的东西

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

    先看定义:

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

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

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

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

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

    def decor(func):              #外层函数
        def money():              #内层函数
            print("给你钱")
            func()
            print("还我钱!!!")
        return money              #内层函数将自己打成一个包供外函数返回,即所谓的闭包函数
    
    
    
    def sell():
        print("销售有钱了卖东西.")
    
    
    res = decor(sell)     #调用外函数
    res()                      #外函数的返回值,即返回的是外函数中套的内函数

  • 相关阅读:
    反转链表
    链表中倒数第k个结点
    调整数组顺序使奇数位于偶数前面
    词根词缀,非核心prefix/suffix/root
    核心过去式/过去完成时Past tense / past perfect
    非顺序表达
    英语连读
    图片,视频总结
    sql,explain
    @transaction注解
  • 原文地址:https://www.cnblogs.com/tjlhappyboy/p/11303052.html
Copyright © 2011-2022 走看看