天天看點

裝飾器修複技術修飾裝飾器

裝飾器修複技術,讓其更加完美,如果不加這個的話,函數内部會列印裝飾器内的注釋,加上之後,列印的是被裝飾的函數.

裝飾器

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