import functools
def note(func):
" not function "
# @functools.wraps(func) # 对自定义的装饰器再加上functools.wraps装饰器, 作用是让自定义的装饰器函数wrapped在传给func时, 仍保func函数的解释文档__doc__
def wrapped(*args, **kwargs):
" wrapped function"
print('note something')
return func(*args, **kwargs)
return wrapped
@note
def test(a, b):
" func function"
print('I am test')
return a+b
print(test(1,2))
print(test.__doc__)
运行结果:
note something
I am test
3
wrapped function
import functools
def note(func):
" not function "
@functools.wraps(func)
def wrapped(*args, **kwargs):
" wrapped function"
print('note something')
return func(*args, **kwargs)
return wrapped
@note
def test(a, b):
" func function"
print('I am test')
return a+b
print(test(1,2))
print(test.__doc__)
运行结果:
note something
I am test
3
func function