Code Fix

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

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

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

 1  def tag(label, tags=_____):
                          ^
 2      if tags is None:
 3          tags = set()
 4      tags.add(label)
 5      return tags
 6  
 7  print(tag("a"))
 8  print(tag("b"))
出力: {'a'} {'a', 'b'}期待: {'a'} / {'b'} (エラーにはなりません)

空欄を埋めて実行を通す

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

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

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

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

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