[Python] *args 與 **kwargs 使用方式
Published in
Mar 25, 2021
於函式中代入長度可變資料,進行打包運算。
一、* 使用情境:
於函式呼叫時,直接丟入數值進行運算。
其中的參數為長度可變,並直接打包為一個 tuple。
特別注意tuple為 immutable。
範例:給func數個numbers,只留下偶數(evens)
注意此適用情境僅限於給數值資料(numeric data)。
# 只留下偶數 (only pick evens)def myfunc(*nums):
List = []
for i in nums:
if i%2==0:
List.append(i)
return Listmyfunc(2,3,7,8,9,10)
#[output] = [2,8,10]
二、**使用情境:
於函式呼叫時,需要事先定義好參數並賦值(Assign)。
所給予的資料,會存成一組字典(Dictionary)。
而這兩種可變資料也可以同時並用,就會依據函式中給予的參數或數值,自動進行分配,並轉換為tuple(採用*args)或dictionary(採用**kwargs)格式的資料。
- 主要運用在使用者輸入資料長度可變動,長度也可為0。
- args 是 arguments 縮寫,表示位置參數;
kwargs 是 keyword arguments 縮寫,表示關鍵字參數。 - *args 中的args可以自己命名,同理**kwargs。
- 兩者並行時,*args必須置於**kwargs之前。
最後,附上一張大神整理的筆記,感謝觀看至此^^。