重複の可能性:
Python 継承で属性参照がこのように動作するのはなぜですか?
Python: 派生クラスは、同じメモリ位置にある基底クラスの辞書にアクセスします
コードを見てみましょう:
class parent:
book = {'one':1, 'two':2}
class child(parent):
pass
first = child()
second = child()
print first.book
print second.book
second.book['one'] = 3
print first.book
print second.book
このオブジェクトを実行すると、「最初に」辞書が編集されます! なんてこと?「最初」と「2番目」は「子」クラスの別々のインスタンスだと思いました。ここで何が起きてるの?2 番目に編集したものが最初に影響するのはなぜですか?
各子クラスで本を再作成することでこれを「修正」できますが、それは正しい方法ではありません。クラスを本来の使用方法で利用したいと考えています。
私は何を間違っていますか?
ところで、私の主な言語は cpp なので、cpp を python などと混同しているのかもしれません...
どんな助けでも大歓迎です!