上級 › クラス属性がインスタンス間で共有される › パターン2
クラス属性がインスタンス間で共有される
クラス直下に書いたリストや辞書は、全インスタンスで共有される1つのオブジェクトになります。
1 class Product: 2 tags = [] 3 def __init__(self): 4 ________________ ^ 5 def tag(self, name): 6 self.tags.append(name) 7 8 p1 = Product() 9 p2 = Product() 10 p1.tag("sale") 11 print(p2.tags)
出力: ['sale']期待: [] (エラーにはなりません)
空欄を埋めて実行を通す
商品にタグを付けるような処理でも同じ罠にかかります。1つの商品に付けたタグが、無関係な別の商品にも表示されてしまいます。
次の問題