Python 如何在函数decorator包装后获得函数的原始名称? 代码
我想要的是得到这个代码的原始名称,比如“func1”和“func2”。但是之前编写的代码只给了我“wrapper”和“wrapper”。有办法吗?”最好不要更改包装代码 输出 理想输出Python 如何在函数decorator包装后获得函数的原始名称? 代码,python,Python,我想要的是得到这个代码的原始名称,比如“func1”和“func2”。但是之前编写的代码只给了我“wrapper”和“wrapper”。有办法吗?”最好不要更改包装代码 输出 理想输出 您可以使用functools.wrappshelper函数,如下所示,它将保留wrapped函数的原始名称和文档字符串,例如: from functools import wraps def blahblah(func): @wraps(func) def wrapper(*args):
您可以使用
functools.wrapps
helper函数,如下所示,它将保留wrapped函数的原始名称和文档字符串,例如:
from functools import wraps
def blahblah(func):
@wraps(func)
def wrapper(*args):
pass # blah blah blah....
return wrapper
@blahblah
def func1(arg1):
pass # blah blah blah
print(func1.__name__)
# func1
正如在注释中指出的,虽然这保留了名称和文档字符串,但在主题上有一些事情需要注意-。
wrapper None
wrapper None
func1 None
func2 None
from functools import wraps
def blahblah(func):
@wraps(func)
def wrapper(*args):
pass # blah blah blah....
return wrapper
@blahblah
def func1(arg1):
pass # blah blah blah
print(func1.__name__)
# func1