问题描述
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 (将#修改为@)