我想利用多个子类共享同一个父类的能力。如何在不调用多重继承的情况下执行此操作。class Base(object): shared_thing = 'Hello' things = [] def __init__(self, message): self.things.append(message)class One(Base): def __init__(self, json_message): super(One, self).__init__(json_message)class Two(Base): def __init__(self, message): super().__init__(message)class Three(Base): def __init__(self, message): Base.__init__(self, message)one = One('one')print('ONE: ' + str(one.things))one = One('one but a second time')print('ONE: ' + str(one.things))two = Two('two')print('TWO: ' + str(two.things))three = Three('three')print('THR: ' + str(three.things))base = Base('base again')print('BAS: ' + str(base.things))但是,super的这三个不同的初始化会给我同一个对象的引用ONE: ['one']ONE: ['one', 'one but a second time']TWO: ['one', 'one but a second time', 'two']THR: ['one', 'one but a second time', 'two', 'three']BAS: ['one', 'one but a second time', 'two', 'three', 'base again']我没有使用 python 获得超级面向对象,所以如果这是错误的方法,请原谅。
1 回答

弑天下
TA贡献1818条经验 获得超8个赞
您可能打算things像这样设置为实例变量:
class Base(object):
shared_thing = 'Hello'
def __init__(self, message):
self.things = []
self.things.append(message)
添加回答
举报
0/150
提交
取消