装饰器修复技术

装饰器修复技术,让其更加完美,如果不加这个的话,函数内部会打印装饰器内的注释,加上之后,打印的是被装饰的函数.

装饰器

def login_auth(func):
    """我是装饰器"""
    def inner(*args, **kwargs):
        res = func(*args, **kwargs)
        return res

    return inner

@login_auth
def login():
    """我是被装饰的函数"""
    ...
print(login)
print(help(login))
###############################
<function login_auth.<locals>.inner at 0x000001DC6ABE60D0>
Help on function inner in module __main__:

inner(*args, **kwargs)
    我是装饰器

None

修饰装饰器

导入from functools import wraps

from functools import wraps
def login_auth(func):
    @wraps(func)

    def inner(*args, **kwargs):
        """我是装饰器"""
        res = func(*args, **kwargs)
        return res

    return inner

@login_auth
def login():
    """我是被装饰的函数"""
    ...
print(login)
print(help(login))
####################################
<function login at 0x000002ADDBEC60D0>
Help on function login in module __main__:

login()
    我是被装饰的函数

None
posted @ 2019-10-30 23:29  豆瓣酱瓣豆  阅读(142)  评论(0编辑  收藏  举报