Ich habe eine Python-Funktion, fetch_datadie eine Remote-API aufruft, einige Daten abruft und sie in ein Antwortobjekt zurückgibt. Es sieht ein bisschen wie folgt aus:
def fetch_data(self, foo, bar, baz, **kwargs):
response = Response()
# Do various things, get some data
return response
Jetzt ist es möglich, dass in den Antwortdaten "Ich habe mehr Daten, rufe mich mit einem inkrementierten pageParameter an, um mehr zu erhalten" steht. Daher möchte ich im Wesentlichen "The Method Call" (Funktion, Parameter) im Antwortobjekt speichern, damit ich dann eine haben kann, Response.get_more()die die gespeicherte Funktion und die gespeicherten Parameter betrachtet und die Funktion mit (fast) derselben erneut aufruft Parameter, eine neue zurückgebenResponse
Wenn nun fetch_datawurden definiert als fetch_data(*args, **kwargs)ich gerade speichern könnte (fetch_data, args, kwargs)in response. Allerdings habe ich self, foo, barund bazzur Sorge - ich konnte einfach speichern , (fetch_data, foo, bar, baz, kwargs)aber das ist eine höchst unerwünschte Menge an Wiederholungen.
Im Wesentlichen versuche ich herauszufinden, wie aus einer Funktion heraus ein vollständig ausgefülltes *argsund **kwargseinschließlich der benannten Parameter der Funktion erstellt werden kann.