2
我想計算Python3.x中自定義類及其子類的實例數。怎麼做?非常感謝你。如何計算自定義類的實例數量?
我試過類成員的方式,但它不起作用。以下是碼
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的
在我的PyDev,它不能很好地工作。但非常感謝。而且,在這裏,我必須將類方法_count(cls)更改爲_counter(cls),以使其正常工作 – 2014-08-31 09:38:06
對不起,它仍然無法正常工作。你的環境是什麼? – 2014-08-31 09:44:15
@ user365489:查看我的更新演示和進一步的解釋。我也在這裏使用了Python 3.4,但我還沒有喝過早茶。 – 2014-08-31 09:44:37