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