PHYSICS_LIB Telegram 14461
👨🏻‍💻 В нашем дружественном 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5334🔥113🌚2👨‍💻2❤‍🔥1😢1👾1



tgoop.com/physics_lib/14461
Create:
Last Update:

👨🏻‍💻 В нашем дружественном 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

BY Physics.Math.Code




Share with your friend now:
tgoop.com/physics_lib/14461

View MORE
Open in Telegram


Telegram News

Date: |

Invite up to 200 users from your contacts to join your channel The court said the defendant had also incited people to commit public nuisance, with messages calling on them to take part in rallies and demonstrations including at Hong Kong International Airport, to block roads and to paralyse the public transportation system. Various forms of protest promoted on the messaging platform included general strikes, lunchtime protests and silent sit-ins. Find your optimal posting schedule and stick to it. The peak posting times include 8 am, 6 pm, and 8 pm on social media. Try to publish serious stuff in the morning and leave less demanding content later in the day. Unlimited number of subscribers per channel The main design elements of your Telegram channel include a name, bio (brief description), and avatar. Your bio should be:
from us


Telegram Physics.Math.Code
FROM American