【Python入門】関数の引数をわかりやすく!名前付き引数(キーワード引数)の使い方とは?

Python

Pythonでは、関数に引数を渡す際に 「名前を指定して引数を渡す」方法 を使うことができます。これを「名前付き引数(キーワード引数 / keyword arguments)」と呼びます。

複数の引数がある関数でも、どの引数にどの値を渡すのかが明確になるため、コードの読みやすさ・メンテナンス性が向上します。

この記事でわかること
  • 名前付き引数とは?通常の引数との違い
  • 名前付き引数の基本的な使い方
  • 名前付き引数を使った関数の具体例
  • 関連機能:デフォルト引数、可変長キーワード引数 **kwargs
スポンサーリンク
スポンサーリンク

名前付き引数(キーワード引数)とは?

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

まとめ:名前付き引数はこんなときに使おう!

シーン名前付き引数が役立つ理由
引数が多い関数を扱うとき値と引数の関係が明確になる
引数の順番を間違えやすいとき引数の順序に依存せずに記述できる
関数を読みやすく・メンテしやすくしたいとき可読性・保守性の向上につながる

関連記事

タイトルとURLをコピーしました