python 假設我有一個def 是 bbbb(a,b,c) 我想要新增一個 aaaa 函式參數會全部傳送到 bbbb 該如何做?

 

 


 

 

你可以用 *args**kwargs 來做到這件事,這樣 aaaa 可以把收到的參數完整轉傳給 bbbb

範例:

 

 

def bbbb(a, b, c):
    print(f"a={a}, b={b}, c={c}")

def aaaa(*args, **kwargs):
    # 直接把所有參數轉交給 bbbb
    return bbbb(*args, **kwargs)

# 呼叫
aaaa(1, 2, 3)              # 位置參數
aaaa(a=10, b=20, c=30)     # 關鍵字參數

輸出:

 

 

a=1, b=2, c=3
a=10, b=20, c=30

好處

  • *args 可以接收不限數量的位置參數1, 2, 3

  • **kwargs 可以接收不限數量的關鍵字參數a=10

  • 不需要在 aaaa 中逐一列出 bbbb 的所有參數