24小时热门版块排行榜    

查看: 229  |  回复: 0

phoniexhao

木虫 (正式写手)

[求助] Python 自定义类实例自动计数

题目可能不够清晰,请见谅.

我打算实现个功能: 从一个基类派生的各个子类在实例化时统一计数.

我有三个自定义类,分别放于三个 module 中,  如下:

Base.py
CODE:
class Base:

    ## class members
    __count = int(0)
    @classmethod
    def _count(cls):
        cls.__count += 1
        return cls.__count


    def __init__(self):
        self.__id = self._count()

    @property
    def id(self):
        return self.__id

SubBase1.py
CODE:
from Base import Base

class SubBase1(Base):
    def __init__(self):
        Base.__init__(self)

SubBase2.py
CODE:
from Base import Base

class SubBase2(Base):
    def __init__(self):
        Base.__init__(self)

main.py
CODE:
from SubBase1 import SubBase1
from SubBase2 import SubBase2

s1 = SubBase1()
s2 = SubBase2()

print('s1-id', s1.id)
print('s2-id', s2.id)

按我的预想, 结果应该为
CODE:
s1-id 1
s2-id 2

但是实际结果为:
CODE:
s1-id 1
s2-id 1

求助,如何实现我预想的功能?
环境: Ubuntu 14.04 + Python 3.4 + PyDev
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : Base.py
  • 2014-08-31 17:05:57, 265 bytes
  • 附件 2 : SubBase1.py
  • 2014-08-31 17:06:02, 99 bytes
  • 附件 3 : SubBase2.py
  • 2014-08-31 17:06:05, 99 bytes
  • 附件 4 : main.py
  • 2014-08-31 17:06:09, 138 bytes

» 猜你喜欢

已阅   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 phoniexhao 的主题更新
信息提示
请填处理意见