Code Fix

上級 › クラス属性がインスタンス間で共有される › パターン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']期待: [] (エラーにはなりません)

空欄を埋めて実行を通す

広告
広告スロット(未設定)

クラス属性がインスタンス間で共有される

インスタンスごとに独立させたい場合は__init__で作ります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)