Pythonでは、関数が不確定な数の引数を取り扱うために*args
と**kwargs
という特殊なキーワードが用意されています。
*argsについて
*args
は任意の数の非キーワード引数を関数に渡すことができます。これにより、関数は最初の引数として名前を受け取り、その後に続く任意の数の趣味を受け取ることができます。
def show_hobbies(name, *hobbies):
print(f"{name}'s hobbies are:")
for hobby in hobbies:
print(hobby)
show_hobbies("Alice", "reading", "coding", "running")
上記の例では、関数show_hobbies
は名前(name
)と任意の数の趣味(*hobbies
)を受け取り、それらを一つずつ表示します。
**kwargsについて
**kwargs
は任意の数のキーワード引数を関数に渡すことができます。これにより、関数は最初の引数として名前を受け取り、その後に続く任意の数の趣味を受け取ることができます。
def func(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
func(name='Alice', age=25, hobby='coding')
上記の例では、関数func
は任意の数のキーワード引数を受け取り、それらのキーと値を表示します。
argsと*kwargsの組み合わせ
*args
と**kwargs
は関数定義時に非常に強力な柔軟性を提供します。これらを組み合わせることで、関数は任意の数の位置引数とキーワード引数を受け取ることができます。
def func(*args, **kwargs):
print(args)
print(kwargs)
func(1, 2, a=3, b=4, c=5)
上記の例では、関数func
は任意の数の位置引数(*args
)とキーワード引数(**kwargs
)を受け取り、それらを表示します。
以上がPythonの*args
と**kwargs
についての基本的な説明です。これらを理解することで、Pythonの関数の引数の取り扱いがより柔軟になります。