\

Pythonでは、関数が不確定な数の引数を取り扱うために*args**kwargsという特性があります。これらはそれぞれ任意の数の位置引数とキーワード引数を関数に渡すための構文です。

*argsについて

*argsは「任意の数の位置引数」を関数に渡すための構文です。この*記号がポイントで、これによって引数がタプルとして関数に渡されます。

def func(*args):
    for arg in args:
        print(arg)

func('apple', 'banana', 'cherry')
# 出力結果:
# apple
# banana
# cherry

上記の例では、関数funcは任意の数の引数を受け取り、それらを一つずつ表示します。

**kwargsについて

**kwargsは「任意の数のキーワード引数」を関数に渡すための構文です。この**記号により、キーワード引数が辞書として関数内に渡されます。

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

func(name='Alice', age=25, hobby='coding')
# 出力結果:
# name: Alice
# age: 25
# hobby: coding

この例では、関数funcは任意の数のキーワード引数を受け取り、それらのキーと値を表示します。

argsと*kwargsの注意点

重要な注意点として、*argsは必ず普通の引数よりも後に位置しなければならないというルールがあります。これは、Pythonが普通の引数と*argsの区別がつかないためです。

def func(*args, a):
    print(a)
    for arg in args:
        print(arg)

# 関数を呼び出す
func(1, 2, 3, 4, a=5)
# TypeError: func() missing 1 required keyword-only argument: 'a'

以上、Pythonの*args**kwargsについての基本的な説明でした。これらを理解することで、Pythonの関数がより柔軟に引数を扱えるようになります。

投稿者 admin

コメントを残す

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