【发布时间】:2014-10-24 18:51:58
【问题描述】:
我想统计 Python3.x 中自定义类及其子类的实例数。怎么做?非常感谢。
我尝试过class-member的方式,但它不起作用。以下是代码
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)
代码输出:
s1-id 1
s2-id 1
但是,我想要的是:
s1-id 1
s2-id 2
我该怎么办?首先非常感谢! PS: 环境:Ubuntu 14.04 + Python 3.4 + PyDev
【问题讨论】:
标签: python python-3.x instance