可変長引数
Pythonでは、関数に渡す引数の数が不定の場合、可変長引数を使用することができます。これにより、引数の数が決まっていない関数を柔軟に定義することが可能です。Pythonでは、*args
と**kwargs
を使って、位置引数やキーワード引数の可変長を扱います。本記事では、これらの使い方を解説します。
可変長位置引数(*args)
*args
を使用すると、関数に複数の引数を渡すことができます。*args
はタプルとして引数を受け取り、引数の数が可変である場合に便利です。次の例は、可変長引数を使った関数の定義です。
# 可変長位置引数の例
def print_numbers(*args):
for number in args:
print(number)
この関数は、任意の数の引数を受け取り、それらを1つずつ出力します。
# 関数の呼び出し例
print_numbers(1, 2, 3, 4, 5)
出力結果は次のようになります。
1
2
3
4
5
可変長キーワード引数(**kwargs)
**kwargs
を使用すると、複数のキーワード引数を関数に渡すことができます。**kwargs
は辞書として引数を受け取り、キーワードと値のペアを処理する際に役立ちます。以下はその例です。
# 可変長キーワード引数の例
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
この関数は、キーワード引数として渡されたデータを辞書形式で処理し、それぞれのペアを出力します。
# 関数の呼び出し例
print_info(name="太郎", age=25, city="東京")
出力結果は次の通りです。
name: 太郎
age: 25
city: 東京
*argsと**kwargsの併用
*args
と**kwargs
は、同じ関数で併用することが可能です。これにより、位置引数とキーワード引数の両方を任意の数で受け取ることができます。次の例では、*args
と**kwargs
を同時に使用しています。
# *argsと**kwargsの併用例
def greet_people(*args, **kwargs):
for name in args:
print(f"こんにちは、{name}さん!")
for key, value in kwargs.items():
print(f"{key}: {value}")
この関数は、位置引数として名前を受け取り、キーワード引数として追加情報を表示します。
# 関数の呼び出し例
greet_people("太郎", "次郎", age=25, city="東京")
出力結果は次の通りです。
こんにちは、太郎さん!
こんにちは、次郎さん!
age: 25
city: 東京
可変長引数のまとめ
引数 | 説明 |
---|---|
*args | 位置引数を可変長で受け取る(タプルとして扱う) |
**kwargs | キーワード引数を可変長で受け取る(辞書として扱う) |
まとめ
Pythonの可変長引数を使うことで、関数に渡す引数の数を柔軟に扱うことができます。*args
は位置引数、**kwargs
はキーワード引数を可変長で受け取るため、どちらも特定の場面で非常に便利です。これらを理解し、状況に応じて使い分けることで、関数の柔軟性を高めることができます。