2010-05-06 104 views
0

比方說,我們有分配變量

def Foo(Bar=0,Song=0): 
    print(Bar) 
    print(Song) 

我想分配與變量的函數的兩個參數中的任何一個唱歌SongVal:

Sing = Song 
SongVal = 2 

使它可以運行這樣的: Foo(Sing=SongVal) 當唱將樂曲參數分配給SongVal這是2. 結果應印像這樣:

0 
2 

那麼我應該重寫我的函數還是可以按照我想要的方式來執行? (有了上面的代碼,你會得到一個錯誤,說Foo沒有參數Sing。我能理解爲什麼,有什麼辦法可以克服這個問題,而不用重寫太多的函數嗎? 在此先感謝!

回答

4

你在找什麼路過任意關鍵字參數**kwargs方式:

kwargs = {Sing: SongVal} 
foo(**kwargs) 

中查看示例部分4.7 of the tutorial at www.python.org

+0

的工作,感謝 只有需要改變被星應該等於一個串唱=「宋」 – user202459 2010-05-06 23:07:31

+0

'Sing'的事情!在你的追求中已經是「宋」了離子。 – 2010-05-06 23:09:21