装饰器代码模型:
def wrapper(func): def inner(*args, **kwargs): """在执行目标函数之前要执行的内容""" ret = func(*args, **kwargs): """在执行目标函数之后要执行的内容""" return ret return inner @wrapper def target_func(): print('目标函数') #调用函数 target_func()
^^^虽然访问的是target_func函数, 但实际执行的是inner函数,需要修改函数名
from functools import wraps #引入函数模块 def wrapper(func): @wraps(func) def inner(*args, **kwargs): """在执行目标函数之前要执行的内容""" ret = func(*args, **kwargs): """在执行目标函数之后要执行的内容""" return ret return inner @wrapper # 相当于 target_func = wrapper(target_func) def target_func(): print('目标函数') #调用函数 target_func()