動態引數*args**kwargs

概念說明

動態引數*args**kwargs是Python中的一種參數傳遞方式,用於在函數中接收不定數量的參數。

  • *args:用來接收任意數量的位置引數,可以接收0個或多個引數,它們會被收集成一個元組(tuple)。
  • **kwargs:用來接收任意數量的關鍵字引數,可以接收0個或多個引數,它們會被收集成一個字典(dict)。

使用方式

  • *args的使用方式為在函數定義時,在需要接收位置引數的參數名稱前加上*號,如:def func(*args):。在函數內部,可以像操作元組一樣來訪問args中的引數。
  • **kwargs的使用方式為在函數定義時,在需要接收關鍵字引數的參數名稱前加上**號,如:def func(**kwargs):。在函數內部,可以像操作字典一樣來訪問kwargs中的引數。

程式範例

args

def func(*args):
    print(args)
    print(type(args))
func(1,2,3,4,5,6,7,8,9,10)

輸出:

kwargs

def fun1(a, b, **kwargs):
    print(f"a={a}, b={b}, kwargs={kwargs}")
    ans = kwargs.get('c', 0) # 如果沒有c,就回傳0,使用.get()方法不影響往下傳遞的參數
    fun2(**kwargs)
    return ans

def fun2(c, d, **kwargs):
    print(f"c={c}, d={d}, kwargs={kwargs}")
    fun3(**kwargs)
    
def fun3(e=1, f=2):
    print(f"e={e}, f={f}")

fun1(1, 2, c=3, d=4)