Пояснение ⬇️
Python использует порядок разрешения методов (MRO) для определения, какой метод вызывать. В данном случае класс D наследует от B и C. MRO для класса D: D -> B -> C -> A. Поэтому вызывается метод process из класса B. Код выполняется корректно.
Python Learning 👩💻
