MRO в Python 🧬

Если вас спросят, как Python ищет методы в «ромбовидной» иерархии, и вы ответите «сначала в глубину» (DFS) или «сначала в ширину» (BFS) — вы ошиблись. Оба ответа технически неверны для Python 3.

Разбираем анатомию Method Resolution Order: 💎 Diamond Problem: Почему порядок наследования может быть критически важен. 💎 Как работает алгоритм C3 Linearization. 💎 Миф о super(): почему это не всегда «вызов родителя».

Листайте, чтобы понять, почему ваши миксины работают не так, как вы планировали 👉

#анатомия_питона

MRO в Python 🧬
Если вас спросят, как Python ищет методы в «ромбовидной» иерархии, и вы ответите «сначала в глубину» (DFS) или «сначала в ширину» (BFS) — вы ошиблись | Сетка — социальная сеть от hh.ru MRO в Python 🧬
Если вас спросят, как Python ищет методы в «ромбовидной» иерархии, и вы ответите «сначала в глубину» (DFS) или «сначала в ширину» (BFS) — вы ошиблись | Сетка — социальная сеть от hh.ru
MRO в Python 🧬
Если вас спросят, как Python ищет методы в «ромбовидной» иерархии, и вы ответите «сначала в глубину» (DFS) или «сначала в ширину» (BFS) — вы ошиблись | Сетка — социальная сеть от hh.ru MRO в Python 🧬
Если вас спросят, как Python ищет методы в «ромбовидной» иерархии, и вы ответите «сначала в глубину» (DFS) или «сначала в ширину» (BFS) — вы ошиблись | Сетка — социальная сеть от hh.ru MRO в Python 🧬
Если вас спросят, как Python ищет методы в «ромбовидной» иерархии, и вы ответите «сначала в глубину» (DFS) или «сначала в ширину» (BFS) — вы ошиблись | Сетка — социальная сеть от hh.ru