Pythonでは、関数の引数に特殊な記法を用いることで、柔軟な引数の取り扱いが可能になります。その中でも、*args
と**kwargs
は特によく使われます。
*argsについて
*args
は、関数に任意の数の引数を渡すための記法です。ここでのargs
はarguments
(引数)を意味し、*
はその前にある引数をタプルとしてまとめることを示します。
def func(*args):
for arg in args:
print(arg)
func(1, 2, 3, 4, 5) # 1, 2, 3, 4, 5が出力される
**kwargsについて
**kwargs
は、関数に任意の数のキーワード引数を渡すための記法です。ここでのkwargs
はkeyword arguments
(キーワード引数)を意味し、**
はその前にある引数を辞書としてまとめることを示します。
def func(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
func(a=1, b=2, c=3) # a: 1, b: 2, c: 3が出力される
argsと*kwargsの併用
*args
と**kwargs
は一緒に使用することも可能です。ただし、*args
は**kwargs
よりも先に記述する必要があります。
def func(*args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(f"{key}: {value}")
func(1, 2, 3, a=4, b=5, c=6) # 1, 2, 3, a: 4, b: 5, c: 6が出力される
以上がPythonの*args
と**kwargs
についての基本的な説明です。これらを理解し活用することで、より柔軟な関数の定義が可能になります。