2015-12-03 52 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