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