class Base(object):
def __init__(self, parent = None):
print("Base created " + str(parent) )
class AnotherBase(object):
def __init__(self, parent = None):
print("Another Base created " + str(parent))
class ChildA(Base):
def __init__(self, parent = None):
Base.__init__(self, 'child A')
class ChildB(AnotherBase, Base):
def __init__(self, parent = None):
super(ChildB, self).__init__('child B') # инициализация происходит по 1-ому предку, т.е. по AnotherBase
ChildA()
ChildB()
Base created child A
Another Base created child B # вызов инициализации предка Base не происходит
Также в версии Python 3 можно испльзовать упрощенную конструкцию:
class ChildB(AnotherBase, Base):
def __init__(self, parent = None):
super().__init__('child B')