У меня есть вопрос, касающийся многоуровневого наследования в Python. Следующие классы в моем сценарии.
class A():
def __init__(self, x, y, z):
self.x = x
class B():
def __init__(self, x, y, z):
self.x = x
class C(A):
def __init__(self, x):
super.__init__(x)
self.x = x
class D(B,C):
def __init__(self, x):
super.__init__(x)
self.x = x
Я не уверен, что мой вопрос будет понятен, но я попытаюсь объяснить.
- Если класс C наследует от класс A форма в классе C будет прямоугольником.
- Если класс C наследует от класса B, форма в классе C будет кругом.
- Но если класс D наследует класс B (класс круга), а затем класс C (A) это будет форма круга, хотя класс C по-прежнему наследуется от класса A (в сценарии). С другой стороны D (C, B) это будет прямоугольная форма (похоже, потому что C (A) будет инициализироваться первой)
Почему мульти-наследование в классе D"переопределить" родительский элемент из class C, чтобы быть кругом вместо формы прямоугольника?