python - 将具有相应参数的函数列表传递给另一个函数

标签 python function keyword-argument

我正在努力传递带有相应参数列表的函数列表。我还检查了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/

相关文章:

python - 结合 python 中的列表列表(类似于 string.join 但作为列表理解?)

PHP变量没有传递给函数

sql-server - SQL Server 2014 转换函数出现问题

python - 使用 Tornado 选项处理任意选项,例如 **kwargs

python - 使用可变数量的键的字典,如何获得其值的笛卡尔积?

python - 在for循环中连接

python - 在不使用网络服务器的情况下从浏览器中调用程序

Python:将类变量字符串转换为类类字符串

javascript - 为什么 JavaScript "onblur"函数没有被调用?

python - 通过多级函数传递 kwargs,解包其中一些但传递所有函数