**kwargsとは

**kwargsは「キーワード引数」(keyword arguments)の略で、関数に任意の数のキーワード引数を渡すことができる特別な構文です。

基本的な使い方

def example_function(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")
 
# 使用例
example_function(name="Alice", age=30, city="Tokyo")

具体的な活用例

1. 柔軟な関数定義

def create_person(**kwargs):
    person = {
        "name": kwargs.get("name", "Unknown"),
        "age": kwargs.get("age", 0),
        "job": kwargs.get("job", "Not specified")
    }
    return person
 
# 異なる引数で呼び出し可能
person1 = create_person(name="Bob", age=25)
person2 = create_person(name="Charlie", job="Engineer")

2. 他の引数と組み合わせる

def advanced_function(required_arg, *args, **kwargs):
    print(f"必須引数: {required_arg}")
    print("可変長位置引数:", args)
    print("キーワード引数:", kwargs)
 
advanced_function(10, 20, 30, extra1="value1", extra2="value2")

主な特徴

  • 任意の数のキーワード引数を受け取れる
  • キーワード引数は辞書として扱われる
  • 関数内で柔軟な引数処理が可能
  • 他の引数と組み合わせることができる

注意点

  • **kwargsは関数の最後の引数として使用する
  • キーワード引数は順不同で渡せる

このように、**kwargsは関数の柔軟性を大幅に向上させる強力な機能です。