デフォルト引数、キーワード引数、可変長引数

Pythonの関数における「デフォルト引数」「キーワード引数」「可変長引数」は、柔軟な関数の定義と呼び出しを可能にする重要な仕組みです。以下、それぞれについて詳しく説明します。


1. デフォルト引数(Default Arguments)

定義時にあらかじめ値を設定しておく引数のことです。関数を呼び出す際に引数が渡されなければ、デフォルト値が使用されます。

python
def greet(name, message="こんにちは"): print(f"{message}, {name}さん!")

呼び出し例

python
greet("山田") # → 「こんにちは, 山田さん!」 greet("佐藤", "おはよう") # → 「おはよう, 佐藤さん!」

特徴

  • デフォルト引数は通常の引数の後ろに書く必要があります。

  • def func(a, b=2, c=3) はOKですが、def func(a=1, b) はエラーになります。


2. キーワード引数(Keyword Arguments)

関数の呼び出し時に「引数名=値」の形で渡す方法です。引数の順序を無視でき、読みやすさや柔軟性が向上します。

python
def introduce(name, age, country): print(f"{name}さんは{age}歳で、{country}出身です。")

呼び出し例

python
introduce(age=30, name="鈴木", country="日本")

特徴

  • 順番を気にせず引数を指定できる。

  • 位置引数の後にキーワード引数を書く必要がある


3. 可変長引数(Variable-length Arguments)

引数の数が決まっていない場合に使用します。2つの形式があります。

(1) *args:位置引数の可変長

複数の引数をタプルとして受け取ることができます。

python
def add_numbers(*args): total = sum(args) print(f"合計: {total}")
python
add_numbers(1, 2, 3) # → 合計: 6 add_numbers(10, 20, 30, 5) # → 合計: 65

(2) **kwargs:キーワード引数の可変長

複数のキーワード引数を辞書として受け取ることができます。

python
def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key} : {value}")
python
print_info(name="田中", age=25, country="日本") # 出力: # name : 田中 # age : 25 # country : 日本

まとめ

種類 定義例 呼び出し例 特徴
デフォルト引数 def func(x, y=10) func(5) 引数が渡されなければデフォルト値を使用
キーワード引数 func(x=1, y=2) func(y=2, x=1) 順序を無視できる
可変長引数 def func(*args, **kwargs) func(1, 2, a=3, b=4) 任意の数の引数に対応できる

生成日:2025/05/03