Есть ли множественное наследование в Python

«Есть ли множественное наследование в Python» — вопрос из категории Python, который задают на 28% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, Python поддерживает множественное наследование. Класс может наследовать от нескольких родительских классов, получая их атрибуты и методы. Порядок наследования определяется MRO (Method Resolution Order), который можно посмотреть через ClassName.__mro__.

Пример:

class A:
    def method(self):
        print("A method")

class B:
    def method(self):
        print("B method")

class C(A, B):
    pass

c = C()
c.method()  # Выведет "A method" (первый родитель в списке)

Нюансы:

  • При конфликте методов используется порядок из MRO (слева направо)
  • Может усложнять архитектуру (алмазная проблема наследования)
  • Рекомендуется использовать миксины для добавления функциональности