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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage