我正在尝试创建一个将字符串映射到函数的字典。问题是,函数可以有不同的参数长度。有没有办法解决这个问题。
例如:
myFuncDict
{
'A' : a ----> def a(param1, param2)
'B : b ----> def b(param1)
'C' : c ----> def c(param1, param2, param3)
}
I want to call functions like:
def test(k):
myFuncDict[k](params)
我怎样才能做到这一点? kwargs或args是一种可行的方法,但不知道如何使用那些没有发送额外参数的方法来处理上述问题。
答案 0 :(得分:3)
Python实际上使这很简单。您可以使用解包运算符*
将参数容器解压缩到函数调用中。这是一个例子:
def a(x):
print(x)
def b(x, y):
print x, y
dic = {'a': a, 'b': b}
def call_func(func, params):
dic[func](*params) # *params is the magic.
call_func('a', (1))
call_func('b', (1, 2))