Python function 中的 **kwargs是如何使用?

在 Python 中,**kwargs 可讓你向函數傳遞可變數量的關鍵字參數,kwargs代表關鍵字參數,它使你能夠動態處理命名參數。當在函數定義中使用 **kwargs 時,它會將傳遞給該函數的所有關鍵字參數收集到「字典」中。

要定義接受關鍵字參數的函數,只需在函數的參數清單中包含**kwargs,以下是一個基本的例子:

def example_function(**kwargs):

    for key, value in kwargs.items():

        print(f”{key}: {value}”)

example_function(name=”Alice”, age=30, city=”New York”)

在此範例中,函數 example_function 可以接受任意數量的關鍵字參數。當呼叫時,它會列印每個鍵值對。輸出將是:

name: Alice

age: 30

city: New York

在以下情況下使用 **kwargs 特別有用:您希望允許函數的使用者傳遞可選參數,而不必在函數簽名中定義每個可能的參數。

以下是一個更實際的例子,其中 **kwargs 可以發揮作用:

def create_profile(**kwargs):

    profile = {}

    for key, value in kwargs.items():

        profile[key] = value

    return profile

user_profile = create_profile(name=”Bob”, age=25, occupation=”Engineer”)

print(user_profile)

此函數根據提供的關鍵字參數建立使用者設定檔字典。輸出將是:

{‘name’: ‘Bob’, ‘age’: 25, ‘occupation’: ‘Engineer’}

您可以像存取任何字典一樣存取 **kwargs 中的值。例如:

def print_info(**kwargs):

    if ‘name’ in kwargs:

        print(f”Name: {kwargs[‘name’]}”)

    if ‘age’ in kwargs:

        print(f”Age: {kwargs[‘age’]}”)

print_info(name=”Charlie”, age=28)

這將輸出:

Name: Charlie

Age: 28

**kwargs 提供了靈活性,可以透過適應各種輸入場景來簡化函數定義並增強程式碼的可用性。

Share your thoughts