2016-01-24 119 views
0

我有一個Python函數,它需要一個必需的參數和四個可選的參數。如果可選參數沒有值,則需要在調用函數時忽略它。示例調用將如下所示,並指定所有參數。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

'MyFunction(required,** kwargs)',使用kwargs的字典... –

+0

使用** kwargs它是一本字典,可以解壓縮 – danidee

回答

2

不要將它們作爲字符串傳遞;在將它們作爲一個解壓詞典:

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

**將解壓字典和發送的每個元素的命名參數。

1

您可以使用MyFunction(parameters, *args, **kwargs),或者您也可以定義一種方法,將空格分開並解析或使用eval(不推薦)分配變量。

相關問題