我正在尝试编写一个python脚本,该脚本运行一组在JSON中指定为字典的函数(这是用户输入)。以下是JSON文件包含的内容:
{
"tests_to_run": {"find_holes": [],
"is_greater": [1.2]
}
}
find_holes
和is_greater
是我写的两个函数,第一个是0,第二个是1参数。我们的想法是在与JSON字典中的功能键关联的列表中指定这些参数。
我目前正在使用此词典,如下所示:
functions_dict = {"find_holes": val.find_holes,
"is_monotonic": val.is_monotonic}
def run_functions(dict_tests_to_run):
for func, params in dict_tests_to_run.iteritems():
if params==[]:
functions_dict[func](time_series)
if len(params)==1:
functions_dict[func](time_series, params[0])
手动检查参数的长度似乎有点尴尬,特别是因为我将不得不扩展循环以容纳最多至少4个参数的函数。有没有更好的方法呢?
谢谢, 安
答案 0 :(得分:2)
您可以使用*
运算符将列表扩展为函数参数。例如,
f(1,2,3)
相当于:
a=[1,2,3]
f(*a)