白话解读: 装饰器的本质是在执行原有函数(被装饰的函数)的同时,再加上一些额外的功能。
不用想那些乱七八糟的东西,
先来个最简单的demo,通俗易懂:
def aaa(func): print("执行前!!!") return func # 执行 被执行函数 def ddd(func): def new(): func() print('执行后!!!') return new @aaa def bbb(): print('执行1') @ddd def ccc(): print('执行2')
@wraps 函数作用:
保证被执行函数基础信息不被变更 如函数名称、描述 等
https://www.cnblogs.com/goddog1024/p/11195040.html
def aaa(func): print("执行前!!!") @wraps(func) # 注释、取消注释可查看差异 def eee(*args): func() # return func() # 执行 被执行函数 return eee @aaa def bbb(): print('执行1') bbb() print(bbb.__name__)