【Python】関数に可変個の引数を指定する方法

この記事では、Pythonの関数に可変個の引数を指定する方法について解説します。

*argsや**kwargsを使って、任意の数の引数を受け取る方法や、それらを組み合わせて使う方法を学びます。

さらに、可変個の引数を使った便利なテクニックについても紹介します。

目次から探す

可変個の引数とは?

可変個の引数とは、関数に任意の数の引数を渡すことができる機能です。

通常、関数には固定の引数が指定されますが、可変個の引数を使うことで、引数の数を柔軟に指定することができます。

*argsを使った可変個の引数の指定方法

*argsの基本的な使い方

argsは、関数の引数リストにアスタリスク*を付けて定義します。

これにより、関数に渡された引数はタプルとして扱われます。

タプルは要素の追加や削除ができないため、可変個の引数を受け取る際に使用します。

*argsを使った関数の例

def sum_numbers(*args):
    total = 0
    for num in args:
        total += num
    return total

result = sum_numbers(1, 2, 3, 4, 5)
print(result)  # 出力結果: 15

上記の例では、sum_numbersという関数を定義しています。

この関数は可変個の引数を受け取り、引数の合計値を計算して返します。

sum_numbers(1, 2, 3, 4, 5)という呼び出しでは、引数として1から5までの数値が渡されており、合計値である15が出力されます。

**kwargsを使った可変個の引数の指定方法

**kwargsの基本的な使い方

**kwargsは、関数の引数リストに二重のアスタリスク(**)を付けて定義します。

これにより、関数に渡された引数は辞書として扱われます。

辞書はキーと値のペアで構成されており、可変個の引数を受け取る際に使用します。

**kwargsを使った関数の例

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="John", age=25, city="Tokyo")

上記の例では、print_infoという関数を定義しています。

この関数は可変個の引数を受け取り、引数のキーと値を順に表示します。

print_info(name=John, age=25, city="Tokyo")という呼び出しでは、キーと値のペアが辞書として渡されており、以下のような出力がされます。

name: John
age: 25
city: Tokyo

*argsと**kwargsを組み合わせた可変個の引数の指定方法

*argsと**kwargsを組み合わせた関数の例

def print_info(*args, **kwargs):
    for arg in args:
        print(arg)
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info("Hello", "World", name="John", age=25)

上記の例では、print_infoという関数を定義しています。

この関数は可変個の引数とキーワード引数を受け取り、引数とキーワード引数を順に表示します。

print_info("Hello, World", name=John, age=25)という呼び出しでは、引数としてHelloとWorldが渡され、キーワード引数としてname=Johnage=25が渡されています。

以下のような出力がされます。

Hello
World
name: John
age: 25

可変個の引数を使った便利なテクニック

可変個の引数を使った関数のオーバーロード

Pythonでは、関数のオーバーロード(同じ名前の関数を複数定義すること)はサポートされていません。

しかし、可変個の引数を使うことで、異なる引数の組み合わせに対応する関数を定義することができます。

可変個の引数を使ったデフォルト引数の指定

可変個の引数を使う場合、デフォルト引数を指定することもできます。

デフォルト引数は、引数が渡されなかった場合に使用される値です。

可変個の引数を使った引数の順序の変更

可変個の引数を使うことで、引数の順序を自由に変更することができます。

これにより、関数の柔軟性を高めることができます。

可変個の引数を使う際には、引数の数や型に注意が必要です。

また、可変個の引数を使いすぎるとコードの可読性が低下する場合があるため、適切に使うようにしましょう。

目次から探す