This question already has answers here:
What does functools.wraps do?

(6个答案)


5年前关闭。




如何获得原始函数的名称?
def wrap(f):
    def wrapped_f(*args, **kwargs):
        # do something
    return wrapped_f

@wrap
def A(params):
   # do something

print(A.__name__)

结果:wrapped_f,但我需要A!

最佳答案

使用 functools.wraps() :

直接来自文档:



示例:

from functools import wraps


def wrap(f):
    @wraps(f)
    def wrapped_f(*args, **kwargs):
        pass
    return wrapped_f


@wrap
def A(params):
    pass


print(A.__name__)

输出:
$ python -i foo.py
A
>>>

关于python - 包装函数的函数名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30799700/

10-15 01:57