制御構造ツール(4章)
Pythonにおいて、関数のデフォルト引数値はいつ評価されるか。
- A関数が呼び出されるたびに評価される
- Bモジュールがインポートされるたびに評価される
- ✓関数が定義されたときに一度だけ評価される
- Dプログラム終了時に評価される
解説
デフォルト引数値は関数定義文が実行された時点で一度だけ評価され、その値が以降のすべての呼び出しで再利用される。これがリストなどの可変オブジェクトをデフォルト値にする際の落とし穴の原因になる。
根拠Pythonチュートリアル4章 制御構造ツール(デフォルト引数値)