我有一个名为 fetch_data
的 Python 函数,它访问远程API获取数据,并将其包装在响应对象中返回。它的代码类似于下面这样:
def fetch_data(self, foo, bar, baz, **kwargs):
response = Response()
# Do various things, get some data
return response
现在,响应数据可能会显示“我有更多的数据,请使用增加的page
参数调用我以获取更多数据”。因此,我想要将“方法调用”(函数、参数)存储在响应对象中,这样我就可以使用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
,包括函数的命名参数。
fetch_data
的签名,我仍然需要更改Response
。 - Kristian Glass