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