2012-10-14 62 views

回答

1

這兩個概念都是(大部分)不同。

在函數定義方面,您已命名具有名稱的參數,並且您有可變參數擴展,一個用於位置參數(給出元組),另一個用於鍵盤參數(給出字典)。

實施例:

def f(a, b=5, *c, **d): return a, b, c, d 

這個函數有兩個命名參數可用於定位或通過關鍵字(ab)。 cd採取所有其他給出的。

您可以使用位置參數以及關鍵字參數來調用此函數。

f(1) 
f(a=1) 

都返回

1, 5,(), {} 

,因爲位置和關鍵字參數被分配到指定的參數。

可以如做

f(a=5, foo=12) or f(5, foo=12) # -> 5, 5,(), {'foo': 12} 
f(1, 2, 3) # -> 1, 2, (3,), {} 

在最後一個示例中,位置參數1和2中給出的命名參數ab;超過3被放入元組c

你不能這樣做

f(b=90) # no value for a 
f(12, a=90) # two values for a 

如果還有unclearities,請讓我知道。