Python函数调用,如何将多个函数参数作为单个变量字符串传递?

时间:2016-01-24 06:37:32

标签: python function python-2.7

我有一个Python函数,它需要一个必需参数和四个可选参数。如果可选参数没有值,则需要从函数调用中省略它。一个示例调用将如下所示指定所有参数。

MyFunction(required='Delta', param1='ABC', param2='XYZ', ID=1234, title='Imp Info') 

我想将所有可选参数收集到变量中,然后将变量传递给函数。这将使处理可选参数更容易。如下所示:

myVar = "param2='XYZ', ID=1234, title='Imp Info'"
MyFunction(param1='Delta', myVar) 

我已尝试过上述操作,但语法错误导致失败。如何将函数参数作为变量传递?我很感激任何指导。

2 个答案:

答案 0 :(得分:2)

不要把它们作为一个字符串传递出来;将它们作为解压缩的字典传递:

myVar = {'param2':'XYZ', 'ID':1234, 'title':'Imp Info'}
MyFunction(param1='Delta', **myVar)

**将解压缩字典并将每个元素作为命名参数发送。

答案 1 :(得分:1)

您可以使用MyFunction(parameters, *args, **kwargs),或者您可以定义一个方法,而不是按空格拆分字符串,并解析或使用eval(不推荐)来分配变量。