制御構造ツール(4章)
Pythonの関数定義における *args と **kwargs の性質の違いに関する説明として、正しいものはどれか。
- A*argsは超過したキーワード引数を辞書としてまとめ、**kwargsは超過した位置引数をタプルとしてまとめる
- B*argsと**kwargsはどちらも辞書としてまとめられ、機能上の違いはない
- C関数定義内では**kwargsを*argsよりも前に置かなければならない
- ✓*argsは超過した位置引数をタプルとしてまとめ、**kwargsは超過したキーワード引数を辞書としてまとめる。定義順は*argsが**kwargsより前になる
解説
*argsは対応する仮引数のない位置引数をタプルに、**kwargsは対応する仮引数のないキーワード引数を辞書にまとめる。関数定義では*argsを**kwargsより前に記述する必要がある。
根拠Pythonチュートリアル4章 任意引数リスト