我一直在用這個來破解我的腦袋。使用字符串或字典來構建Python函數參數
鑑於這一功能:
def foo(param1, param2, param3):
print 'param1 =', param1
print 'param2 =', param2
print 'param3 =', param3
是有可能做這樣的事情在Python?
string1 = 'param1'
string2 = 'param2'
string3 = 'param3'
foo(string1='val1', string2='val2', string3='val3') # Uber magic
或類似的東西?
params = {
'param1': 'val1',
'param2': 'val2',
'param3': 'val3'
}
foo(params) # Even ubener magic
的所有法術的結果應該是相當於調用
foo(param1='val1', param2='val2', param3='val3')
我沒有興趣在不斷變化的方式來支持**kwargs
功能。
在此先感謝!
你想要的第二個做什麼這是非常我不清楚。你能用言語解釋並給出一個明確的預期輸出,因爲tl; dr是所有這些東西都是可能的(沒有魔法:)) –
這個想法是自動地讓解釋器將string1的值'param1'識別爲函數的param1參數,而不管我傳遞string1,string2或string3'參數'的順序。 –
「我不想改變函數以支持'** kwargs'的方式」 - 該函數是否用'** kwargs'參數定義,與您是否可以將關鍵字參數傳遞給* * kwargs'。 – user2357112