首页 > 其他 > 详细

闭包函数和装饰器

时间:2019-07-11 22:37:31      阅读:125      评论:0      收藏:0      [点我收藏+]

一、闭包函数

  顾名思义,函数里面包了个函数

  闭包用于给里面函数传参

  函数传参两种情况:

        1、直接传参

        2、闭包

  闭包函数运行步骤图:

技术分享图片

 

 

二、装饰器

  1.含义

    用修饰器原因:修饰函数,是函数更好用(添加新的功能)

    因旧函数添加新功能,不可改调用方式,又不能改旧函数(被修饰对象)源代码

    即两个原则

      1.不改变被装饰对象源代码

      2.不改变被装饰对象(可调用对象)调用方式

def index(): 
      print(x)       #原始函数    
#outter+inner函数组成index  函数的装饰器
def outter(func)      #  func = 最原始的index函数的内存地址
    def inner(*args,**kwargs)
        func()       #func = index函数的内存地址,加()直接调用
        print(y)
    return inner  
index = outter(index)  # outter (最原始的index函数内存地址)
# index指向 inner函数的内存地址
index()  

  2.装饰器 语法糖

   作用:不改变最原始函数的

  @+下层函数名   #  函数名 = 修饰函数名(函数名)

  3.装饰器固定格式

1 def outter(func):
2     def inner(*args,**kwargs):
3         print(执行被装饰函数之前 你可以做的操作)
4         res = func(*args,**kwargs)
5         print(执行被装饰函数之后 你可以做的操作)
6         return res
7     return inner

    装饰器在装饰的时候 顺序从下往上

    装饰器在执行的时候 顺序从上往下

闭包函数和装饰器

原文:https://www.cnblogs.com/xiaowangba9494/p/11173011.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!