def decorate(func):
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
@decorate
def test(a=1,b=2):
return a+b
print test.__name__
结果是包装器。有没有办法让结果是"测试"?
答案 0 :(得分:4)
使用functools.wraps
:
from functools import wraps
def decorate(func):
@wraps(func)
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
@decorate
def test(a=1,b=2):
return a+b
print test.__name__