使用用户输入调用具有各种参数的函数

时间:2013-08-02 14:07:35

标签: python

我正在尝试编写一个python脚本,该脚本运行一组在JSON中指定为字典的函数(这是用户输入)。以下是JSON文件包含的内容:

{
"tests_to_run": {"find_holes": [],
                 "is_greater": [1.2]
                 }
}

find_holesis_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个参数的函数。有没有更好的方法呢?

谢谢, 安

1 个答案:

答案 0 :(得分:2)

您可以使用*运算符将列表扩展为函数参数。例如,

f(1,2,3)

相当于:

a=[1,2,3]
f(*a)