有時看到python函數中的參數有出現*args與**kw,不知道這兩個參數具體是什么意思,現在我就來介紹以下函數參數*arg與**kw的具體含義
*args
:將實參中按照位置傳值,多余的值都給args,以元組的方式呈現
對於初學者來說,有人可能將元組忘記了
元祖和列表十分相似,不過元組是不可變的。即你不能修改元組。元組通過圓括號中用逗號分隔的項目定義。
my=(1,2,3,4)
注意:被使用的元組的值不會改變。
**kw
:形參中按照關鍵字傳值,多余的值都給kw,以字典*的方式呈現
字典里面的元素是將鍵與值聯系起來
像這樣:
d = {key1 : value1, key2 : value2 }
注意:
(1)鍵/值對用冒號分割,而各個對用逗號分割,所有這些都包括在花括號中另外,
(2)字典中的鍵/值對是沒有順序
現在我們通過例子來學習*arg與**kw的作用:
def My(*args, **kwargs):
print 'args = ', args
print 'kwargs = ', kwargs
My(1,2,3,4)
My(a=5,b=6,c=7)
My(1,2,a=3,b=4)
輸出結果:
args = (1, 2, 3, 4)
kwargs = {}
args = ()
kwargs = {'a': 5, 'b':6 , 'c': 7}
args = (1, 2,)
kwargs = {'a': 3, 'b': 4}
現在一個可以看出其中的區別與使用了吧