Pythonのクラス属性について不可解な質問があります。以下のクラスを検討してください。
class A:
__lst = []
def add(self, str):
self.__lst.append(str)
print len(self.__lst)
x と y の 2 つのインスタンスを作成しようとしたところ、次のようになりました。
>>> x = A()
>>> x.add('aaa')
1
>>> x.add('bbb')
2
>>> y = A()
>>> y.add('aaa')
3
>>> y.add('bbb')
4
y のインスタンスにはリスト属性の別のコピーがあると予想していましたが、別のオブジェクトを使用してリストに要素を追加しても、リストが大きくなるようです。それは単に奇妙です。
誰かがこの問題について私に教えてもらえますか? ご協力いただきありがとうございます。:-)