裝飾器修復技術

裝飾器修復技術,讓其更加完美,若是不加這個的話,函數內部會打印裝飾器內的註釋,加上以後,打印的是被裝飾的函數.python

裝飾器函數

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
相關文章
相關標籤/搜索