上級 › クラス属性がインスタンス間で共有される › パターン5
クラス属性がインスタンス間で共有される
クラス直下に書いたリストや辞書は、全インスタンスで共有される1つのオブジェクトになります。
1 class Basket: 2 fruits = [] 3 def __init__(self): 4 ____________________ ^ 5 def add(self, fruit): 6 self.fruits.append(fruit) 7 8 b1 = Basket() 9 b2 = Basket() 10 b1.add("apple") 11 print(b2.fruits)
出力: ['apple']期待: [] (エラーにはなりません)
空欄を埋めて実行を通す
買い物かごのような機能でも同様です。__init__で自分専用のリストを作らないと、他のインスタンスの中身と混ざります。
次の問題