可変長引数とは
関数の引数の個数を指定せずに引数を渡す方法です。
可変長引数を指定するには「*args」「**kwargs」のように変数名の前にアスタリスク「*」「**」を書きます。(慣例としてargs・kwargsを使いますが、頭にアスタリスクがついていれば他の名前でも大丈夫です。)
※当ページではargs,kwargsで表記します
アスタリスク1つ?2つ?の違い
引数の頭につけるアスタリスクの数の違いについて説明していきます。
アスタリスク1つ
複数の引数をタプルとして受け取る
アスタリスク2つ
複数のキーワード引数を辞書として受け取る
以下実例を見ながら説明していきます。
実例① アスタリスク1つ : *args
例ではsum()
関数にタプルを渡して合計を算出しています。
実例②アスタリスク2つ : **kwargs
例では関数の中では引数名がkey
、値がvalue
となる辞書として受け取られる。
不適切な引数を設定したとしてもエラーにならない?!
可変長引数をしていると不適切な引数を設定したとしてもエラーになりません。
実例を示します。
まとめ
可変長引数(*args, **kwargs)とは何か、また可変長引数の使い方を実例を通して学びました。
通常の利用で引数を可変長引数として受け取ることは、あまり推奨されません。
注意して使用することを心がけましょう。
コメント