上級 › クラス属性がインスタンス間で共有される › パターン1
クラス属性がインスタンス間で共有される
クラス直下に書いたリストや辞書は、全インスタンスで共有される1つのオブジェクトになります。
1 class Cart: 2 items = [] 3 def __init__(self): 4 __________________ ^ 5 def add(self, item): 6 self.items.append(item) 7 8 c1 = Cart() 9 c2 = Cart() 10 c1.add("apple") 11 print(c2.items)
出力: ['apple']期待: [] (エラーにはなりません)
空欄を埋めて実行を通す
クラス直下に書いたitems=[]は全インスタンスで共有される1つのリストです。__init__でself.itemsに新しいリストを代入すると、インスタンスごとに独立したリストになります。
次の問題