PYTHON НАСЛЕДОВАНИЕ МНОЖЕСТВЕННОЕ
Python поддерживает множественное наследование, то есть класс может наследовать атрибуты и методы от нескольких родительских классов.
Пример определения класса с множественным наследованием:
class MyClass(Parent1, Parent2, Parent3): def __init__(self): Parent1.__init__(self) Parent2.__init__(self) Parent3.__init__(self)
В этом примере MyClass
наследует атрибуты и методы от трех родительских классов Parent1
, Parent2
и Parent3
. Метод __init__
вызывается для каждого из родительских классов.
При множественном наследовании может возникнуть проблема конфликта имен. Например:
class Parent1: def greet(self): print("Hello from Parent1")class Parent2: def greet(self): print("Hello from Parent2")class Child(Parent1, Parent2): passc = Child()c.greet()
Здесь Child
наследует метод greet
от обоих родительских классов. При вызове метода c.greet()
возникнет проблема, так как не понятно, какой из методов использовать. В этом случае можно явно указать, какой из методов вызвать:
class Child(Parent1, Parent2): def greet(self): Parent1.greet(self)c = Child()c.greet()
В этом примере метод greet
переопределен в классе Child
, и вызывается метод greet
из класса Parent1
.
Просто об MRO (Method resolution order) в Python
ООП 30 Множественное наследование в Python. Multiple inheritance in Python
#25. Множественное наследование - Объектно-ориентированное программирование Python
ООП Python наследование классов - Python ООП за три урока
Python с нуля. Урок №57. Классы. Множественное наследование
Наследование в объектно-ориентированном программировании. Введение в ООП Python
Собеседование python разработчик в мой стартап - Федор (пожелал остаться неизвестным)
#22. Наследование. Функция super() и делегирование - ООП Python
Новые материалы: