Ich bin verwirrt über Klassenattribute in Python.
Betrachten Sie die folgende Klasse: < /p>
Code: Select all
class A:
__lst = []
def add(self, str):
self.__lst.append(str)
print len(self.__lst)
Ich habe versucht, zwei Instanzen x und y zu erstellen und habe Folgendes erhalten:
Code: Select all
>>> x = A()
>>> x.add('aaa')
1
>>> x.add('bbb')
2
>>> y = A()
>>> y.add('aaa')
3
>>> y.add('bbb')
4
Ich hatte erwartet, dass die Instanz y eine separate Kopie des Listenattributs hat, aber es scheint, dass die Liste nur dann größer wird, selbst wenn Sie ein anderes Objekt verwenden, um Elemente zur Liste hinzuzufügen.>