Я понимаю, что MRO — это порядок, в котором атрибут находится в иерархии классов.
Если я использую атрибут 'foo', как в myInstance.foo, будет использован первый foo, найденный в MRO.
И поиск обычно останавливается.
Теперь предположим, что bar() использует super()
.
Поскольку super()
возвращает следующий базовый экземпляр в MRO, myInstance.bar() будет вызывать все bar() в своей иерархической цепочке.
Если bar() всех суперклассов также вызывает super().bar(),
bar() будет вызываться в порядке, указанном MRO.
Я правильно их понимаю?