Sobes.tech
Back to questions
Junior — Middle
73

Каким образом в Python осуществляется поддержка наследования от нескольких классов одновременно?

Companies where asked
СБЕРСБЕР
БилайнБилайн

Answer from AI

sobes.tech AI

В Python поддержка множественного наследования реализована напрямую через указание нескольких базовых классов при объявлении класса.

Синтаксис:

class DerivedClass(BaseClass1, BaseClass2):
    pass

При этом класс DerivedClass наследует атрибуты и методы от обоих базовых классов. Если методы с одинаковыми именами есть в нескольких базах, порядок разрешения имен (Method Resolution Order, MRO) определяет, какой метод будет вызван.

Пример:

class A:
    def greet(self):
        print("Привет из A")

class B:
    def greet(self):
        print("Привет из B")

class C(A, B):
    pass

obj = C()
obj.greet()  # Выведет: Привет из A

Здесь C наследует от A и B, и при вызове greet() используется метод из A, так как A указан первым и имеет приоритет в MRO.

Можно посмотреть MRO через:

print(C.mro())