在 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 提供了靈活性,可以透過適應各種輸入場景來簡化函數定義並增強程式碼的可用性。