Почему в Python константы ведут себя по-разному: странные особенности True, False, None и других

Python's pre-declared constants are kinda weird

В Python есть шесть предопределённых констант: True, False, None, __debug__, Ellipsis (или ...) и NotImplemented. Они ведут себя по-разному: True, False и None — ключевые слова, __debug__ — единственный идентификатор, который нельзя присвоить, а Ellipsis и NotImplemented — обычные встроенные имена, которые можно переопределить. Автор разбирает эти различия, включая возможность изменить значения через setattr(builtins, ...), и показывает, что SyntaxError иногда возникает не из-за синтаксиса, а из-за особых случаев.

Так что в некотором смысле ... — настоящая константа, а Ellipsis — нет. Странно, правда?

Ещё за этот день

2026-08-25