Pythonでは、関数の引数に*
や**
を使用することで、可変長引数を扱うことができます。これらは、関数が任意の数の引数を受け取ることを可能にします。
可変長引数とは
可変長引数とは、関数が任意の数の引数を受け取ることを可能にする機能です。Pythonでは、*args
や**kwargs
のように、引数の前に*
や**
を付けることで可変長引数を定義できます。
*args
と**kwargs
Pythonでは、*args
は可変長の位置引数を、**kwargs
は可変長のキーワード引数を表します。これにより、関数は任意の数の引数を受け取ることができます。
def func(arg1, *args, **kwargs):
print('args:', args)
print('kwargs:', kwargs)
print('type of args:', type(args))
print('type of kwargs:', type(kwargs))
func(1, 2, 3, 4, 5, a=6, b=7, c=8)
上記のコードでは、func
関数は1つの位置引数と、可変長の位置引数および可変長のキーワード引数を受け取ることができます。
注意点
可変長引数を使用する際の注意点として、*args
や**kwargs
を使用する場合、これらは関数定義の最後に配置する必要があります。これは、関数がどの引数が可変長引数に対応するのかを明確にするためです。
def func(*args, p1):
print(args)
print(p1)
func("A", "B", "C", "D") # TypeError
上記のコードでは、*args
がp1
の前に配置されているため、TypeErrorが発生します。
以上、Pythonの可変長引数についての基本的な説明でした。この機能を理解し、適切に使用することで、より柔軟なコードを書くことができます。