Pythonでは、関数に引数を渡す際に 「名前を指定して引数を渡す」方法 を使うことができます。これを「名前付き引数(キーワード引数 / keyword arguments)」と呼びます。
複数の引数がある関数でも、どの引数にどの値を渡すのかが明確になるため、コードの読みやすさ・メンテナンス性が向上します。
名前付き引数(キーワード引数)とは?
def greet(name, message):
    print(f"{name}さん、{message}")
    
greet("Taro", "こんにちは")このように 位置(順番)で引数を渡す方法を「位置引数」と呼びます。
一方、次のように引数名を明示して渡す方法が「名前付き引数(キーワード引数)」です。
greet(name="Taro", message="こんにちは")使用例:ミリメートルを変換する関数
例:単位を変換する関数
def henkan(mm_number, length):
    if length == "inch":
        result = mm_number * 0.03937
    elif length == "cm":
        result = mm_number / 10
    elif length == "寸":
        result = mm_number * 0.033
    result_out = "{0}mmは{1}{2}です。".format(mm_number, result, length)
    print(result_out)
# 名前付き引数を使った呼び出し
henkan(mm_number=1, length="inch")
henkan(mm_number=2, length="cm")
henkan(mm_number=3, length="寸")出力結果
1mmは0.03937inchです。
2mmは0.2cmです。
3mmは0.099寸です。ポイント
- henkan(mm_number=1, length="inch")のように、どの引数にどの値を渡しているかが明確。
- 順番を間違えても動作するので、バグの予防にもつながります。
補足:デフォルト引数との組み合わせ
関数定義時に、デフォルト値を指定することで、引数の省略も可能になります。
def greet(name="ゲスト", message="こんにちは"):
    print(f"{name}さん、{message}")
greet() 
greet(message="おはよう")結果
ゲストさん、こんにちは
ゲストさん、おはよう補足2:可変長の名前付き引数(**kwargs)
不特定多数のキーワード引数を受け取りたいときは、**kwargsを使います。
def show_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key} : {value}")
show_info(name="Taro", age=20, city="Tokyo")結果
name : Taro
age : 20
city : Tokyoまとめ:名前付き引数はこんなときに使おう!
| シーン | 名前付き引数が役立つ理由 | 
|---|---|
| 引数が多い関数を扱うとき | 値と引数の関係が明確になる | 
| 引数の順番を間違えやすいとき | 引数の順序に依存せずに記述できる | 
| 関数を読みやすく・メンテしやすくしたいとき | 可読性・保守性の向上につながる | 

