2012-12-15 28 views

回答

9

是,使用foo(*i)

>>> foo(*i) 
6 

您還可以在函數定義使用*def foo(*vargs)將所有非關鍵字參數到一個名爲vargs元組。 。 和使用**,對於如def foo(**kargs),將把所有關鍵字參數到名爲kargs詞典:

>>> def foo(*vargs, **kargs): 
     print vargs 
     print kargs 

>>> foo(1, 2, 3, a="A", b="B") 
(1, 2, 3) 
{'a': 'A', 'b': 'B'} 
3

是,Python支持的是:

foo(*i) 

參見Unpacking Argument Lists的文檔。適用於任何可迭代的東西。用兩顆星**它適用於字典和命名參數。

def bar(a, b, c): 
    return a * b * c 
j = {'a': 5, 'b': 3, 'c': 2} 

bar(**j) 
4

這就是所謂的argument unpacking並有操作它。

foo(*i) 

順便說一句,它適用於任何迭代,而不僅僅與列表。

+0

+1用於放棄遊戲的名稱。其實這有助於谷歌這個東西的任何語言。非常感謝。 –

相關問題