装饰器中的@functools.wraps的作用

def login_required(view_func):
    @functools.wraps(view_func)
    def wrapper(*args, **kwargs):
        ......
         return view_func(*args,**kwargs)     
    return wrapper
在wrapper上面使用这个装饰器可以让view_func.__name__或者view_func.__doc__访问的还是原先那个函数的对象属性。而不是装饰以后wrapper的对象属性

猜你喜欢

转载自www.cnblogs.com/xcx-bwt/p/10699254.html