\

Pythonでは、関数の引数に*args**kwargsを使用することがあります。これらは何を意味するのでしょうか?

まず、argskwargsとは何かを理解しましょう。argsarguments(引数)を、kwargskeyword arguments(キーワード引数)を表します。

*argsについて

*argsは、関数に渡される引数の数が不定である場合に使用します。具体的には、*argsはデフォルト値が設定されていない引数の中で明示的に定義されていないものがタプル型として入ります。

def func(a, b, *args):
    print(a)
    print(b)
    print(args)

func(1 ,2 ,3 ,4 ,5)  # 1 2 (3, 4, 5)
func(1, 2)  # 1 2 ()

上記の例では、関数funcは2つの引数ab*argsを取ります。引数の1つ目がaに、2つ目がbに入り、残りがタプル型としてargsに入ります。

**kwargsについて

**kwargsは、関数に渡されるキーワード引数の数が不定である場合に使用します。具体的には、**kwargsはデフォルト値が設定されている引数の中で明示的に定義されていないものが辞書型として入ります。

def func(a=1, b=2, **kwargs):
    print(a)
    print(b)
    print(kwargs)

func(a=1 ,b=2, c=3, d=4, e=5)  # 1 2 {'c': 3, 'd': 4, 'e': 5}
func(1, 2)  # 1 2 {}

上記の例では、関数funcは2つの引数ab**kwargsを取ります。引数の1つ目がaに、2つ目がbに入り、残りが辞書型としてkwargsに入ります。

argsと*kwargsの組み合わせ

*args**kwargsを組み合わせて使用することも可能です。この場合、*argsはデフォルト値が設定されていない引数の中で明示的に定義されていないものがタプル型として入り、**kwargsはデフォルト値が設定されている引数の中で明示的に定義されていないものが辞書型として入ります。

def func(*args, **kwargs):
    print(args)
    print(kwargs)

func(1, 2, a=3, b=4, c=5)  # (1, 2) {'a': 3, 'b': 4, 'c': 5}

以上がPythonの*args**kwargsの基本的な使い方です。これらを理解することで、Pythonの関数の引数の扱いがより柔軟になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です