我有一个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)
我已尝试过上述操作,但语法错误导致失败。如何将函数参数作为变量传递?我很感激任何指导。
答案 0 :(得分:2)
不要把它们作为一个字符串传递出来;将它们作为解压缩的字典传递:
myVar = {'param2':'XYZ', 'ID':1234, 'title':'Imp Info'}
MyFunction(param1='Delta', **myVar)
**
将解压缩字典并将每个元素作为命名参数发送。
答案 1 :(得分:1)
您可以使用MyFunction(parameters, *args, **kwargs)
,或者您可以定义一个方法,而不是按空格拆分字符串,并解析或使用eval
(不推荐)来分配变量。