Многократное наследование в Python переопределяет родительское наследование? - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть вопрос, касающийся многоуровневого наследования в 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, чтобы быть кругом вместо формы прямоугольника?

...