Python の関数にはさまざまな引数の渡し方があります。
今回は基本である「位置引数」「キーワード引数」「デフォルト引数」の3つについて、
それぞれの意味と使い方、そしてどのように使い分けるかを整理しました。
位置引数(positional arguments)
関数を呼び出すとき、引数の順番を守って渡す方法です。
もっとも基本的な引数の渡し方です。
def greet(name, message):
print(f"{name}さん、{message}")
greet("太郎", "こんにちは")
太郎さん、こんにちは
引数は、関数の定義に書かれた順番通りに渡されます。
キーワード引数(keyword arguments)
引数名を指定して渡す方法です。
順番を気にせず引数を渡すことができ、どの引数にどの値が渡されるかが明確になります。
def greet(name, message):
print(f"{name}さん、{message}")
greet(message="おはよう", name="花子")
花子さん、おはよう
キーワード引数を使うと、引数の順序を気にせず明示的に渡せる点が便利です。
デフォルト引数(default arguments)
あらかじめデフォルト値を設定しておくことで、呼び出し時にその引数を省略できるようになります。
def greet(name, message="こんにちは"):
print(f"{name}さん、{message}")
greet("次郎") # message は省略 → デフォルト値が使われる
greet("三郎", "こんばんは") # message を上書き
次郎さん、こんにちは
三郎さん、こんばんは
デフォルト引数は 後ろから順に設定する必要がある というルールがあります。
次のような定義はエラーになります:
# これはエラー
def greet(name="匿名", message):
print(f"{name}さん、{message}")
SyntaxError: non-default argument follows default argument
使い分けのポイント
種類 | 特徴・使いどころ |
---|---|
位置引数 | 必ず渡す必要があり、順番も守る必要がある |
キーワード引数 | 引数名を明示でき、順序を入れ替えても使える |
デフォルト引数 | よく使う値を省略できるようにする、オプション的な引数に便利 |
3つの引数の使い方をうまく組み合わせると、柔軟で分かりやすい関数が書けるようになります。
おわりに
位置引数・キーワード引数・デフォルト引数は、関数を定義するときの基本的な構文ですが、
使い方を整理してみることで、実は多くのことができるようになると感じました。