在 装饰器01 中,index函数添加装饰器auth之后,index.__name__变成了inner, 但是我们可以使用functools工具让index.__name__ 仍然等于index.
代码如下:
import functools def auth(func): @functools.wraps(func) def inner(*args, **kwargs): print('在index函数调用之前做一些事。。。') ret = func(*args, **kwargs) # 这儿的func就是index函数 print('在index函数调用之后做一些事。。。') return ret return inner # 给index函数添加auth这个装饰器,就相当于将index函数作为入参传给auth @auth def index(): print('调用真正的index函数') # 调用index函数 # index('admin') print(index.__name__) # index
日拱一卒无有尽,功不唐捐终入海