Python基礎之可接受任意數量參數的函數

1. 可接受任意數量位置參數的函數

爲了能讓一個函數接受任意數量的位置參數,能夠在參數部分使用「*」。python

def avg(first, *rest):
    return (first + sum(rest) / (1 + len(rest)))
print(avg(1, 2))        #1.5
print(avg(1, 2, 3, 4))  #2.5

在上面這個函數中,rest是由全部其餘位置參數組成的元組。數組

而後咱們在代碼中把它當成了一個序列來進行後續的計算。函數

2. 可接受任意數量關鍵字參數的函數

 爲了接受任意數量的關鍵字參數,使用一個以**開頭的參數。好比:spa

def stu_info(**kwargs):
    print(kwargs)
    print(kwargs["name"], kwargs["sex"])
stu_info(name="yang", sex = "male")

3. 可同時接受任意數量位置參數和關鍵字參數的函數

若是還系統但願某個函數能同時接受任意數量的位置參數和關鍵字參數,能夠同時使用***。好比:rest

def anyargs(*args, **kwargs):
    print(args)
    print(kwargs)

在使用這個函數時,全部的位置參數會被放到args元組中,而全部的關鍵字參數會放到字典kwargs中。code

4. ***的位置

一個*參數只能出如今函數定義中最後一個位置參數後面,而**參數只能出如今最後一個參數。須要注意的是,在*後面仍然能夠定義其餘參數。blog

def a(x, *args, y):
    pass
def b(x, *args, y, **kwargs):
    pass

這種參數就是強制關鍵字參數。it

相關文章
相關標籤/搜索