我想计算一下Python3.x中自定义类及其子类的实例数?非常感谢你。在
我试过班子成员的方式,但不管用。以下是代码
在基准.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
子基1.py
^{pr2}$底基层2.py
from Base import Base
class SubBase2(Base):
def __init__(self):
Base.__init__(self)
在主.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
我该怎么办?首先非常感谢你! 附言: 环境:ubuntu14.04+python3.4+PyDev
在
cls
上设置属性将在子类上设置一个新的属性。您必须在Base
上显式设置此选项:如果您尝试在
cls
上设置属性,则会为每个类创建唯一的计数器,而不是与所有子类共享。在演示:
^{pr2}$相关问题 更多 >
编程相关推荐