装饰器不改变原函数名称问题解决

# coding:utf-8;

# 导包
import functools

# 装饰器
def login_required(f):
    """ login_required"""
  # 添加装饰函数,目的不改变被装饰函数的函数名
    @functools.wraps(f)
    def wrapper(*args, **kwargs):
        """wrapper"""
        return f(*args, **kwargs)
    # 返回函数名
    return wrapper


@ login_required
def func():    # 被装饰函数
    """func name"""
    print('被装饰函数正在执行...')
    print(func.__name__)
    print(func.__doc__)

# 调用
func()

猜你喜欢

转载自blog.csdn.net/mr_xiaoxi/article/details/79772986