Wie wird die Anzahl der Instanzen einer benutzerdefinierten Klasse gezählt?
Ich möchte die Anzahl der Instanzen einer benutzerdefinierten Klasse und ihrer Unterklassen in Python3.x zählen. Wie macht man? Vielen Dank
Ich habe es wie ein Klassenkamerad versucht, aber es funktioniert nicht. Das Folgende sind die Codes
Base.py
class Base:
## class members
__counter = int(0)
@classmethod
def _count(cls):
cls.__counter += 1
return cls.__counter
def __init__(self):
self.__id = self._count()
@property
def id(self):
return self.__id
SubBase1.py
from Base import Base
class SubBase1(Base):
def __init__(self):
Base.__init__(self)
SubBase2.py
from Base import Base
class SubBase2(Base):
def __init__(self):
Base.__init__(self)
main.py
from SubBase1 import SubBase1
from SubBase2 import SubBase2
s1 = SubBase1()
s2 = SubBase2()
print('s1-id', s1.id)
print('s2-id', s2.id)
Die ausgegebenen Codes:
s1-id 1
s2-id 1
Aber was ich will ist:
s1-id 1
s2-id 2
Was soll ich tun? Vielen Dank zuerst! PS: Umgebung: Ubuntu 14.04 + Python 3.4 + PyDev