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__
结果是包装器。有什么方法可以让结果为“test”吗?
最佳答案
使用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__
关于python - 我应该如何使用 python 装饰器而不更改函数名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28455869/