TGViewer
Python: задачки и вопросы Python: задачки и вопросы @quiz_python · 6.93K subscribers
Post #4160 982
Речь идет о так называемом ромбовидном наследовании и принципе MRO (Method Resolution Order).

Марк Лутц, «Изучаем Python», том 2, гл. 32:

«Путь поиска при наследовании в ромбовидных схемах выполняется больше в манере сначала в ширину ~ Python сначала ищет в любых суперклассах справа от только что просмотренного и только потом поднимается к общему суперклассу вверху. Другими словами, поиск проходит по уровням, прежде чем двигаться вверх.

...

class A: attr = 1 # Обычный класс

class B(A): pass # В и С ведут к А
class С(A): attr = 2
class D(B, С): pass # Проверяет С перед А

х = D()
print(х.attr) # Ищет в х, D, В, С

Атрибут x.attr обнаруживается в суперклассе А, потому что в классических классах
поиск при наследовании поднимается настолько высоко, насколько может, прежде
чем остановиться и начать движение вправо».
  • 👍 4
  • 👎 1
More from @quiz_python
  1. Sep 26, 2026Развёрнутое пояснение: 1. При создании класса __slots__ разрешает экземплярам хранить атри…
  2. Sep 26, 2026Post #4900
  3. Sep 26, 2026Развёрнутое пояснение: 1. deque создаёт очередь из a и b с максимальной длиной 3. 2. appen…
  4. Sep 26, 2026Post #4898
  5. Sep 25, 2026Развёрнутое пояснение: 1. defaultdict(int) создаёт словарь, в котором фабрика int возвраща…
  6. Sep 25, 2026Post #4896
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →