Code Fix

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

空欄を埋めて実行を通す

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

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

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

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

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