上級 › クラス属性がインスタンス間で共有される › パターン4
クラス属性がインスタンス間で共有される
クラス直下に書いたリストや辞書は、全インスタンスで共有される1つのオブジェクトになります。
1 class Playlist: 2 songs = [] 3 def __init__(self): 4 __________________ ^ 5 def add(self, song): 6 self.songs.append(song) 7 8 p1 = Playlist() 9 p2 = Playlist() 10 p1.add("song1") 11 print(p2.songs)
出力: ['song1']期待: [] (エラーにはなりません)
空欄を埋めて実行を通す
プレイリストのような機能でも同じ罠にかかります。1つのプレイリストに追加した曲が、無関係な別のプレイリストにも現れてしまいます。
次の問題