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