我正在努力传递带有相应参数列表的函数列表。我还检查了here ,但这不是很有帮助。例如(一种不起作用的天真方法):
def foo(data, functions_list, **kwarg):
for func_i in functions_list:
print func_i(data, **kwarg)
def func_1(data, par_1):
return some_function_1(data, par_1)
def func_2(data, par_2_0, par_2_1):
return some_function_2(data, par_2_0, par_2_1)
foo(data, [func_1, func_2], par_1='some_par', par_2_0=5, par_2_1=11)
重要的是,par_1
不能在func_2
中使用,因此每个函数都使用一组唯一的参数。
最佳答案
您可以使用函数的名称作为关键字参数。索引 kwargs
时,您将使用 func_i.__name__
作为键。
def foo(data, function_list, **kwargs):
for func_i in function_list:
print(func_i(data, kwargs[func_i.__name__]))
现在,
foo(data, [func_1, func_2], func_1='some_par', func_2=[5, 11])
关于python - 将具有相应参数的函数列表传递给另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46195576/