pythonで悩む「*argsって何?」

argsは、pythonにおいて関数に渡される引数を受け取るための変数名です。

引数が不定数になることを想定して、*を付けた変数名として定義します。 例えば、以下のように定義することができます。

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

この例では、関数my_funcを呼び出す際に、任意の数の引数を渡すことができます。 このような書き方をすることで、不定数の引数を受け取ることができます。

不定形の引数とはどういうことか

不定形の引数とは、関数に渡す引数の数が不定のことを指します。

不定形の引数を使うことで、関数に渡す引数の数が変わっても対応できます。

例えば、関数に数字をいくつでも渡したい場合などで使われます。これにより、関数内では tuple として扱うことができます。

Python では、不定形の引数を表現するために *args という書き方が使われます。たとえば、以下のような関数があるとします。

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

この関数は、何個でも数字を渡すことができます。

引数が不定数であり、長さが変わる場合に有用です。

>>> my_func(1, 2, 3, 4)
1
2
3
4

*argsを使った関数例

ここでは、任意の数の足し算する関数を定義します。

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

# 使い方
print(sum_numbers(1, 2, 3, 4, 5))  # 15
print(sum_numbers(10, 20, 30))  # 60

この例では、関数sum_numbersに任意の数の引数を渡すことができます。引数の数は固定ではありません。内部では、*argsを使ってこれらの引数をタプルとして受け取り、それらを足し合わせます。

コメント

タイトルとURLをコピーしました