前提
pythonでlistを内包するclassオブジェクトを複数作成してもlistだけ共有されてしまいます。
実現したいこと
listも個別であって欲しいです。
発生している問題・エラーメッセージ
listを内包するclassを複数作成した所、listだけ共有されてしまいます。
該当のソースコード
python
1class test : 2 def __init__(self, d): 3 self.data.append(d) 4 self.data2 = d 5 data = [] 6 data2 = 0 7 8a = test(1) 9b = test(2) 10c = test(3) 11 12print(a.data2,b.data2,c.data2,len(a.data),len(b.data),len(c.data))
試したこと
該当のソースコードを実行すると
1 2 3 3 3 3
と表示されます。
期待する動作としては
1 2 3 1 1 1
であって欲しいです。
data2(リスト)だけ共有されてしまっている感じです。
補足情報(FW/ツールのバージョンなど)
a = test(1)
b = test(2)
c = test(3)
d = test(4)
print(a.data2,b.data2,c.data2,len(a.data),len(b.data),len(c.data))
とすると
1 2 3 4 4 4
となります。
回答2件
あなたの回答
tips
プレビュー