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)