我有一个Python函数fetch_data
,它访问一个远程API,获取一些数据,并将其封装在一个响应对象中返回。它看起来有点像下图:
def fetch_data(self, foo, bar, baz, **kwargs):
response = Response()
# Do various things, get some data
return response
现在,响应数据可能会说“我有更多数据,请用递增的page
参数调用我以获取更多数据”。因此,我实际上希望将“方法调用”(函数、参数)存储在response对象中,这样我就可以拥有一个Response.get_more()
,它查看存储的函数和参数,并使用(几乎)相同的参数再次调用函数,返回一个新的Response
现在,如果将fetch_data
定义为fetch_data(*args, **kwargs)
,我就可以将(fetch_data, args, kwargs)
存储在response
中。然而,我有self
,foo
,bar
和baz
需要担心-我可以只存储(fetch_data, foo, bar, baz, kwargs)
,但这是一个非常不受欢迎的重复量。
本质上,我试图弄清楚如何从函数内部获得完全填充的*args
和**kwargs
,包括函数的命名参数。
https://stackoverflow.com/questions/10724495
复制相似问题