如何解决在函数调用上游的位置通过python传递kwarg
def func(a,b,**kwargs):
#do some stuff
pass
从位置caller
调用的:
def caller(a,function_handle,function_kwargs = None)
# do some other stuff
something = function_handle(a,function_kwargs)
pass
并由驱动程序功能driver
驱动:
def driver():
a = 1
b = 3
function_i_wanna_use = func
kwargs = {'extra_param_1' : 10,'extra_param_2' : 20}
caller(a,function_i_wanna_use,kwargs)
我希望这个例子有意义。假定这是类似于最小二乘实现的通用形式,其中caller
是最小二乘例程,并且它将使用定义的函数func
拟合到一组数据。用户定义func
的实例,并从driver
调用最小化例程。
在这种情况下,如何正确通过kwargs
? caller
应该与func
的特定呼叫签名无关(它只要求它至少接受a
和b
)。但是它应该告诉用户,“ func
所需要的任何额外参数都可以随意传递给我,我会为您转发它们。”
现在,我只是通过传递字典来做到这一点。我认为那是不对的。如果kwargs
直接将其命名为 ,那不是将func
传递给driver
的方式。我如何顺利地将kwargs
通过一个中间人函数,而对此却一无所知?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。