python装饰器理解
一 先理解这个
1、闭包
函数定义中若满足3个要素,则可称为闭包
① 外部函数A嵌套一个内部函数B
② 外部函数A返回内部函数B的函数名
③ 内部函数B调用非全局变量(即外部函数A的形参或者变量)
以下是对应的闭包例子
2、万能装饰公式:
只要你被装饰,那么相当于这个被装饰的函数的函数名=装饰器(被装饰的函数名) -- 无论怎样,先记住它
二 函数装饰器
三 类装饰器
1、先理解这个
魔术方法__call__
假如存在类A,当执行A()()时会触发执行__call__方法(即类的对象加上括号的时候)
2、类装饰器
四 装饰器应用
1、第一个应用 - 通过装饰器传参,实现类似数据驱动的内容
如果要实现装饰器传参,则需要在装饰器中定义3层函数
最外层函数的返回值是第二层函数名,第二层函数的返回值是第三层函数名
2、第二个应用 - 一个函数被多个装饰器装饰,实现对旧函数新增多重功能
记住:原理“从下往上”,执行“从上往下”
以上是 python装饰器理解 的全部内容, 来源链接: utcz.com/z/529860.html