上級 › クラス属性がインスタンス間で共有される › パターン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__で自分専用のリストを作らないと他のインスタンスの記録と混ざります。
次の問題