【Python】任意引数(可変長引数)に対応した関数の書き方

この記事では、Pythonの任意引数について学びます。

任意引数とは、関数の引数の中で省略可能な引数のことであり、*argsと**kwargsを使って受け取る方法を紹介します。

また、任意引数を使った関数の例や利点、注意点についても解説します。

初心者の方にもわかりやすく解説していきますので、ぜひ読み進めてみてください。

目次から探す

任意引数とは

任意引数とは、関数の引数の中で、必須ではなく省略可能な引数のことを指します。

つまり、関数を呼び出す際にその引数を指定しなくてもエラーが発生せず、デフォルト値が使用されるようになります。

任意引数の書き方

*argsを使った可変長引数の受け取り方

argsは、関数の引数の前にアスタリスク()をつけて定義します。

これにより、関数呼び出し時に任意の数の引数を受け取ることができます。

関数内では、*argsはタプルとして扱われます。

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

my_function(1, 2, 3, 4, 5)
1
2
3
4
5

**kwargsを使ったキーワード引数の受け取り方

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

これにより、関数呼び出し時に任意の数のキーワード引数を受け取ることができます。

関数内では、**kwargsは辞書として扱われます。

def my_function(**kwargs):
    for key, value in kwargs.items():
        print(key, value)

my_function(name="Alice", age=25, city="Tokyo")
name Alice
age 25
city Tokyo

任意引数を使った関数の例

任意引数を使わない場合の関数の書き方

任意引数を使わない場合、関数の引数は必ず指定する必要があります。

def greet(name):
    print("Hello, " + name + "!")

greet("Alice")
Hello, Alice!

任意引数を使った場合の関数の書き方

任意引数を使う場合、引数のデフォルト値を設定することができます。

引数が指定されなかった場合、デフォルト値が使用されます。

def greet(name="Guest"):
    print("Hello, " + name + "!")

greet("Alice")
greet()
Hello, Alice!
Hello, Guest!

任意引数の利点と注意点

利点

  • 任意引数を使うことで、関数の柔軟性が向上します。必要な引数だけを指定して関数を呼び出すことができます。
  • デフォルト値を設定することで、引数の省略時に適切な値が使用されるようになります。

注意点

  • 任意引数は、関数の引数リストの最後に配置する必要があります。
  • 任意引数を使う場合、関数の使用方法や引数の意味を明確にドキュメント化することが重要です。

目次から探す