Python装饰器

Python装饰器

  • 装饰器能把被装饰的函数替换成其他函数
  • 装饰器在加载模块时立即执行,而被装饰器的函数只在明确调用时运行

叠放装饰器(多个装饰器)

把 @d1 和 @d2 两个装饰器按顺序应用到 f 函数上,作用相当于 f = d1(d2(f))

参数化装饰器

创建一个装饰器工厂函数,把参数传给它,返回一个装饰器,然后再把它应用到被装饰函数上

wraps

作用:消除装饰器对原函数的影响
原理:partial对象和update_wrapper函数实现对原函数的相关属性进行拷贝
参考:
https://docs.python.org/zh-cn/3.6/library/functools.html?highlight=wraps#functools.wraps
https://zhuanlan.zhihu.com/p/45535784

类装饰器

使用魔术方法:call 和函数装饰器类似
Python装饰器_第1张图片

你可能感兴趣的:(Python,python,装饰器)