О чем статья? Приветствую своих читателей! Сегодня поговорим о MRO (Method Resolution Order). Поймем как работает множественное наследование в Python и почему "алмаз" не проблема. Зачем нужно множественное наследование и какие проблемы могут возникнуть? Хмм, никогда не задумывались, что получилось, если бы зебру придумали программисты? Попробуем представить это. Допустим есть 2 класса: Попробуем создать класс "Зебра", который наследуется от предыдущих 2-х. По итогу мы можем использовать методы как и "Лошади", так и "Адидаса"...
MRO - Это порядок разрешения методов и о нем обычно говорят, когда речь заходит о множественном наследовании (кстати, если с ним не знакомы, настоятельно рекомендую немного покопаться в теме). Он определяет последовательность, по которой Python ищет методы и атрибуты в классе и его родителях. Чтобы чуть глубже понять, предлагаю рассмотреть принцип его работы на конкретном примере. Допустим, у нас есть некий класс D, который наследуется от классов B и C, которые наследуются от класса A, который ....