答:在python中,*args和**kwargs通常使用在函數定義里。*args 和 **kwargs 都允許你給函數傳不定數量的參數,即使在定義函數的時候不知道調用者會傳遞幾個參數。ps: *args和**kwargs只是一個大家都遵守的習慣,名字可以任意寫的 。
1. *args例子
*args能夠接收不定量的非關鍵字參數,會把位置參數轉化為tuple(非鍵值對的參數組),例子如下面代碼所示:
def func(*args): for i in args: print(i) func(1,2,3,4) 運行結果: 1 2 3 4
2.**kwargs 例子
**kwargs允許你傳遞不定量個關鍵字參數。如果你需要在函數中定義不定量個命名參數,那么你就要使用**kwargs了,它會把關鍵字參數轉化為dict(鍵值對參數組),例子如下面代碼所示:
def func(**kwargs): for i in kwargs: print(i,kwargs[i]) func(a=1,b=2,c=3,d=4) 運行結果: a 1 b 2 c 3 d 4