Code Fix

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

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

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

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

空欄を埋めて実行を通す

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

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

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

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

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