可変長引数 | デフォルト引数と可変長引数 | Python本格超入門

現在作成中です。今後加筆修正してまいります。
スポンサーリンク

スポンサーリンク

可変長引数

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はキーワード引数を可変長で受け取るため、どちらも特定の場面で非常に便利です。これらを理解し、状況に応じて使い分けることで、関数の柔軟性を高めることができます。