码迷,mamicode.com
首页 > 其他好文 > 详细

017-闭包-装饰器

时间:2018-05-13 21:38:13      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:code   语法糖   .com   class   image   闭包   分享图片   这一   代码   

闭包 : 
        闭包和函数的区别 : 闭包可以保存外层函数的参数(原理 : 外层函数返回了内层函数的引用,引用一直指向内层函数。内层函数又需要用到外层的参数,所以外层参数不会被销毁)
        格式 :
             # 注意外层函数一定要有参数或者变量等等,这样内层函数才可以使用外层的内容,如果没有的话
             # 那么内外层函数就没有任何联系,何必使用闭包呢。 
            def 外层函数(参数):
                    def 内层函数():
                            print(参数)
                    # 注意返回的是内层函数引用
                    return 内层函数


装饰器 : 
        作用 : 为被装饰的函数添加额外功能
        特点 : 装饰器函数只执行一次,@的时候执行(语法糖,先跳过@这一行,再回来执行)
        格式 :
               def 外层函数(参数):
                      def 内层函数():
                              print(参数)
                      return 内层函数
        
              @外层函数引用
              def 被修饰的函数():
                      代码块
        执行过程 : 
技术分享图片 技术分享图片 装饰器传参 : 格式 :
def 传参函数(参数A): def 外层(参数B): def 内层(): print(xxx) return 内层引用 return 外层引用 @ 传参函数(参数) def 被修饰的函数(): 代码块 先执行 @ 右边的函数,把参数传进去后,右边函数返回外层引用,此时等于 @外层引用,到这开 始就是装饰器了

 

017-闭包-装饰器

标签:code   语法糖   .com   class   image   闭包   分享图片   这一   代码   

原文地址:https://www.cnblogs.com/hhj-study-10years/p/9033371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!