*args
と **kwargs
は、関数を定義するときに、任意の数の引数を受け取るときに使用されます。
引数を受け取る時の方は次のようになります。
*args
: tuple 型**kwargs
: dict 型一般的に、args, kwargs と書かれることが多いですが、任意の値( *a
, **b
)でも問題ありません。
def test(*args, **kwargs, *extra_args):
print(args)
print(kwargs)
test(1, 2, 3, 4, 5, col=4, row=5)
// (1, 2, 3, 4, 5)
// {'col': 4, 'row': 5}
引数の順番は型でまとめないとエラーになります。
def extra_test(*args, **kwargs, *extra_args):
print(args)
print(kwargs)
print(extra_args)
// File "<stdin>", line 1
// extra_test(1, 2, 3, 4, 5, col=4, row=5, 6)
^
// SyntaxError: positional argument follows keyword argument