裝飾器修復技術,讓其更加完美,若是不加這個的話,函數內部會打印裝飾器內的註釋,加上以後,打印的是被裝飾的函數.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