python函數 *args和**kwargs的含義和用法

python函數

Python中有兩種參數,位置參數和關鍵詞參數,關鍵詞參數只需要用 keyword = somekey 的方法即可傳參,而位置參數只能由參數位置決定。

*開頭的參數接受任意數量的位置參數

* 的作用將tuple或者list中的元素進行unpack,分開傳入,作爲多個參數**

rest是一個元組,包含了除1以外的所有傳遞過來的位置參數

def avg(first,*rest):
    #1
    print(first)
    #(2, 3, 4)
    print(rest)
    #2 3 4
    print(*rest)

avg(1,2,3,4)

**開頭的參數接受任意數量的關鍵字參數

** 的作用是把dict類型的數據作爲參數傳入

def get_name(id,**rest):
    # 1
    print(id)
    # {'first_name': 'tom', 'last_name': 'jack'}
    print(rest)

get_name(1,first_name='tom',last_name='jack')

總結

一般*args 在 ** kwargs 前面,
*開頭的參數只能作爲最後一個位置參數出現,
以**打頭的參數只能作爲最後一個參數出現。因此在
*打頭的參數後仍然可以有其他的參數出現,只是出現在 * args之後的參數只能作爲關鍵字參數使用。

def b(x,*args,y,**args):
	pass
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章