TGViewer
Physics.Math.Code Physics.Math.Code @physics_lib · 147K subscribers
Post #14461 24.3K
👨🏻‍💻 В нашем дружественном IT-канале 🔵 Эпсилон была опубликована интересная задачка по программированию. В этом посте разберем её подробно.

👩‍💻 Задача для наших подписчиков на понимание наследования в Python: Задача: Что выведет следующий код?
class A:
def process(self):
return 'A'

class B(A):
def process(self):
return 'B'

class C(A, B):
pass

obj = C()
print(obj.process())


📜 Варианты ответов:
⚡️ — 1. А
❤️ — 2. B
👍🏻 — 3. Будет вызвано исключение TypeError
👾 — 4. С

Правильный ответ: 3. Будет вызвано исключение TypeError. Но почему так сработает?

Пояснение: Код не сможет быть даже исполнен из-за ошибки в определении класса C. При создании класса C Python пытается построить порядок разрешения методов (MRO). Класс C наследуется от A и B, при этом класс B сам является наследником A.
Это создаёт противоречивую иерархию, которую невозможно выстроить линейно и логично. С точки зрения MRO, класс A не может находиться в иерархии как до класса B (так как B наследуется от A), так и после него (так как C наследует от A после B). Это противоречие приводит к ошибке. Если вы запустите этот код, интерпретатор выдаст исключение еще на этапе создания класса C:
TypeError: Cannot create a consistent method resolution order (MRO) for bases A, B

Вывод: Задача проверяет знание не только того, как вызываются методы, но и того, как Python внутренне строит иерархии классов и не позволяет создавать некорректные наследования.

✍🏻 Напишите в комментариях, вы смогли бы решить такую задачу без подсказки? Какой первый ответ вам пришел в голову? #python #программирование #разработка #архитектура

📙 Как устроен Python. Гид для разработчиков, программистов и интересующихся [2019] Харрисон

📗 Python. Исчерпывающее руководство [2023] Бизли Д.

📕 Мощный Python: Шаблоны и стратегии работы с современным Python [2025] Максвелл Аарон

📒 Python для хакеров [2023] Ли Воган

📙 Сверхбыстрый Python [2023] Тиаго Антао

📒 Основы искусственного интеллекта в примерах на Python. 2-е изд. [2023] Анатолий Постолит

💡 Physics.Math.Code // @physics_lib
  • 👍 59
  • ❤ 38
  • 🔥 11
  • ⚡ 3
  • 🌚 2
  • 👨‍💻 2
  • ❤‍🔥 1
  • 😢 1
  • 👾 1
More from @physics_lib
  1. Oct 11, 2026⚙️ Оппозитный двигатель внутреннего сгорания на 550 см³ и 54 кВт Оппозитный двигатель — по…
  2. Oct 10, 2026📝 Как бы вы решали второе уравнение, если бы у вас под рукой не было бы компьютера ? #зад…
  3. Oct 10, 2026👨🏻‍💻 Технически map медленнее цикла for Рассмотрим на примере движка JavaScript. Когда…
  4. Oct 9, 2026🟥 Эксперимент с маслом и водой в вакуумной камере Вода в вакууме кипит, потому что при ни…
  5. Oct 9, 2026📜 В 1900 году никому не известный французский математик Луи Башелье защитил в Сорбонне ди…
  6. Oct 7, 2026😵‍💫 Плоттер, который рисует картинки и даже портреты в полярной системе координат У поля…
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 →