Code Fix

上級可変デフォルト引数が呼び出しをまたいで共有される › パターン1

可変デフォルト引数が呼び出しをまたいで共有される

リストや辞書をデフォルト引数にすると、その1つのオブジェクトが全ての呼び出しで共有されます。

 1  def add_item(item, items=______):
                                ^
 2      if items is None:
 3          items = []
 4      items.append(item)
 5      return items
 6  
 7  print(add_item("a"))
 8  print(add_item("b"))
出力: ['a'] ['a', 'b']期待: ['a'] / ['b'] (エラーにはなりません)

空欄を埋めて実行を通す

広告
広告スロット(未設定)

可変デフォルト引数が呼び出しをまたいで共有される

呼び出すたびに新しく作られるわけではありません。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)