По шагам:
1️⃣Интерпретатор начинает чтение инструкции по созданию нового класса MyBool.
2️⃣В качестве родительского класса передаётся встроенный тип bool.
3️⃣В исходном коде CPython для структуры класса bool отсутствует специальный флаг Py_TPFLAGS_BASETYPE, который разрешает другим классам расширять его.
4️⃣Создание класса немедленно отклоняется с ошибкой TypeError: type 'bool' is not an acceptable base type.
5️⃣До функции print поток выполнения программы даже не добирается.
Почему это важно
Это редкий пример жёсткого архитектурного ограничения в гибком Python. Понимание того, что базовые концепции истины и лжи аппаратно защищены от переопределения, уберегает от странных идей по созданию собственных логических типов, которые могли бы сломать стандартные проверки if в чужом коде.
Post #4708
918
- ✍ 7