J'ai une fonction Python, fetch_data
qui se connecte à une API distante, récupère des données et les renvoie dans un objet de réponse. Cela ressemble un peu à ce qui suit :
def fetch_data(self, foo, bar, baz, **kwargs):
response = Response()
# Do various things, get some data
return response
Maintenant, il est possible que les données de réponse disent "J'ai plus de données, appelez-moi avec une incrémentation page
paramètre pour en obtenir plus". Ainsi, j'aimerais essentiellement stocker "l'appel de la méthode" (fonction, paramètres) dans l'objet de réponse, de sorte que je puisse ensuite avoir une Response.get_more()
qui examine la fonction stockée et les paramètres, et appelle à nouveau la fonction avec (presque) les mêmes paramètres, en renvoyant un nouveau fichier Response
Maintenant si fetch_data
ont été définis comme suit fetch_data(*args, **kwargs)
Je pourrais juste stocker (fetch_data, args, kwargs)
en response
. Cependant, j'ai self
, foo
, bar
et baz
de s'inquiéter - je pourrais simplement stocker (fetch_data, foo, bar, baz, kwargs)
mais c'est une quantité de répétition hautement indésirable.
Essentiellement, j'essaie de trouver comment, à partir d'une fonction, obtenir une image complètement remplie. *args
et **kwargs
y compris les paramètres nommés de la fonction.