我有一个 Python 函数 fetch_data,它访问远程 API,获取一些数据,并将其包装在响应对象中返回。它看起来有点像下面这些:
def fetch_data(self, foo, bar, baz, **kwargs):
response = Response()
# Do various things, get some data
return response
现在,响应数据可能会说“我有更多的数据,使用增量的 page参数调用我以获得更多的数据”。因此,我实际上想要在响应对象中存储“ The Method Call”(函数,参数) ,这样我就可以有一个 Response.get_more()来查看存储的函数和参数,然后用(几乎)相同的参数再次调用函数,返回一个新的 Response
现在,如果 fetch_data被定义为 fetch_data(*args, **kwargs),我可以只在 response中存储 (fetch_data, args, kwargs)。然而,我有 self,foo,bar和 baz担心-我可以只存储 (fetch_data, foo, bar, baz, kwargs),但这是一个非常不理想的重复数量。
实际上,我正在尝试解决如何从函数内部获得完全填充的 *args和 **kwargs,包括函数的命名参数。