Code Fix

上級クラス属性がインスタンス間で共有される › パターン3

クラス属性がインスタンス間で共有される

クラス直下に書いたリストや辞書は、全インスタンスで共有される1つのオブジェクトになります。

 1  class Robot:
 2      log = []
 3      def __init__(self):
 4          ______________
                   ^
 5      def move(self, step):
 6          self.log.append(step)
 7  
 8  r1 = Robot()
 9  r2 = Robot()
10  r1.move("north")
11  print(r2.log)
出力: ['north']期待: [] (エラーにはなりません)

空欄を埋めて実行を通す

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

クラス属性がインスタンス間で共有される

インスタンスごとに独立させたい場合は__init__で作ります。

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

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