制御構造ツール(4章)
次のコードを実行したとき、result2の値はどれか。 def add_item(item, lst=[]): lst.append(item) return lst result1 = add_item(1) result2 = add_item(2)
- A[2]
- B[1]
- ✓[1, 2]
- Dエラーになる
解説
デフォルト引数の可変オブジェクトは関数定義時に一度だけ生成され、以降の呼び出しで共有されるため、1回目の呼び出しで追加された1が残ったまま2が追加される。
根拠Pythonチュートリアル4章 制御構造ツール(デフォルト引数値の重要な注意点)