有没有办法合并装饰器和包装函数的签名?

时间:2020-01-14 15:57:23

标签: python python-decorators

我正在寻找一个带有附加参数的装饰器来包装可调用对象,包装函数的签名应为两者的并集。

例如

def decorator(func):
    # something like @functools.wrap 
    def wrapper(other_param: int = None, **kwargs):
        pass

    return wrapper

@decorator
def myfunc(*, foo: int, bar: int):
    pass

我想要的是一种在经过修饰的myfunc上调用inspect.signature并获取所有三个命名参数的方法。我知道sigtools库,但不能将其用作依赖项。

编辑:为明确起见,我希望包装器的签名为(foo,bar,other_param)。

0 个答案:

没有答案