Wie kann ich die Argumente einer Funktion in einem Python-Dekorator programmgesteuert ändern?

Gegeben eine Funktion:

def func(f1, kw='default'):
    pass
bare_argspec = inspect.getargspec(func)

@decorator
def func2(f1, kw='default'):
    pass
decorated_argspec = inspect.getargspec(func2)

Wie kann ich einen Dekorateur so erstellen, dassbare_argspec == decorated_argspec?

(Um zu verstehen, warum das Framework, das die dekorierte Funktion aufruft, eine argspec-Prüfung durchführt, um auszuwählen, was übergeben werden soll, muss der Dekorateur dieselbe argspec beibehalten, um nett zu spielen. Als ich diese Frage in #python stellte, bekam ich eine lange rede darüber, warum das rahmenwerk scheiße ist, was ich nicht suche, ich muss das problem hier lösen. außerdem interessiert mich nur die antwort auch)

Antworten auf die Frage(6)

Ihre Antwort auf die Frage