在保持str(func)和repr(func)相同的同时装饰一个函数

时间:2018-02-10 10:21:52

标签: python python-decorators

我正在尝试修饰一个函数,但我希望函数的修饰版本看起来像原始函数。琐碎的例子:

def decorator(func):
    def wrapper(*args, **kwargs):
        return func(*args, **kwargs)

    wrapper.__name__ = func.__name__
    wrapper.__str__ = lambda x: str(func)
    wrapper.__repr__ = lambda x: repr(func)

    return wrapper

但是当我做str(wrapped_function)之类的事情时,我会得到像<function decorator.<locals>.wrapper at 0x10323e048>这样无法提供信息的内容。

如何对其进行编辑,以便返回正确的reprstr

不是this question的副本(虽然解决方案是相同的),但问题是有用的和不同的。

0 个答案:

没有答案