Kwargs是什麼意思

kwargs 是 Python 的一個縮寫,代表 "關鍵字參數"(Keyword Arguments)。在 Python 函數中,*args 用於傳遞不定數量的位置參數,而 **kwargs 用於傳遞不定數量的關鍵字參數。

當你想要在函數中傳遞一個或多個參數,並且這些參數的名稱是已知的,但是你不知道要傳遞哪些參數以及它們的值時,就可以使用 **kwargskwargs 是一個字典,它的鍵是參數名,值是對應的參數值。

下面是一個簡單的例子,展示了如何使用 **kwargs

def func(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

# 使用 func 函數
func(name="Alice", age=30)

在上面的例子中,func 函數接受一個 **kwargs 參數,它是一個字典,包含了所有傳遞給函數的關鍵字參數。在函數體內,我們可以使用 kwargs 來訪問這些參數。

kwargs 的一個常見用途是在類的建構函數中,這樣你就可以靈活地傳遞任意數量的參數來初始化對象的屬性。例如:

class Person:
    def __init__(self, **kwargs):
        self.__dict__.update(kwargs)

alice = Person(name="Alice", age=30)
print(alice.name)  # 輸出 "Alice"
print(alice.age)  # 輸出 "30"

在這個例子中,Person 類的建構函數使用 **kwargs 來接受任意數量的關鍵字參數,並將它們直接更新到對象的 __dict__ 中,這樣就可以將 kwargs 中的鍵值對應到對象的屬性上。