python:更改基类属性

时间:2016-04-13 12:25:07

标签: python class attributes

所以,我有这个类跟踪创建的实例数:

class Base(object):
    total = 0
    def __init__(self):
        <more code>
        Base.total += 1

现在,我想创建一个派生类,但我不希望它的实例添加到Base中的总数。所以我减去以撤消添加:

class Derived(Base):
    def __init__(self):
        super(Derived,self).__init__()
        Base.total -= 1

但是,在我看来,在派生类中访问基类属性似乎不是一个好习惯。有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以避免在子类中调用超类构造函数。它工作正常,但看起来不太好

noinspection PyMissingConstructor

class Derived(Base):

def __init__(self):
    <more code>