2015-12-03 49 views
3

让说我有一个功能参数匹配的Python

def my_func(a,b,c): 
    return a+b+c 

我只能通过串称之为:

eval("my_func") 

假设我有相应的参数的字典:

parm = {'a':1,'b':2,'c':3} 

如何将它传递给eval("my_func")?我知道你可以做到这一点,如:

eval("my_func")(parm['a'],parm['b'],parm['c']) 

但如果这是不是因为当功能的变化(即有2个parmeters为反对3的功能),它不会工作的通用解决方案。

任何想法?

+1

也许用'** parm'打电话了吗? –

+2

参见https://stackoverflow.com/questions/1769403/understanding-kwargs-in-python – Ross

+1

'eval(“my_func”)(** parm)' – ozgur

回答

4

正如其他人评论说,这是你想要什么:

>>> eval("my_func")(**parm) 
6