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


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

為了能讓一個函數接受任意數量的位置參數,可以在參數部分使用“*”。

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. 可接受任意數量關鍵字參數的函數

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

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

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

如果還系統希望某個函數能同時接受任意數量的位置參數和關鍵字參數,可以同時使用***。比如:

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

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

4. ***的位置

一個*參數只能出現在函數定義中最后一個位置參數后面,而**參數只能出現在最后一個參數。需要注意的是,在*后面仍然可以定義其他參數。

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

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

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM