Одно из главных нововведений — режим ReadOnly («только для чтения») для атрибутов классов и протоколов. Это добавляет ясности при работе со статическими анализаторами типов, которые будут проверять соблюдение этого условного ограничения.
Проблема с текущими механизмами:
—
typing.Final накладывает ограничения на переопределение в подклассах;— Применение свойства с
@property требует дополнительного шаблона кода и неочевидно;— Замороженные классы (например, с
dataclass(frozen=True)) накладывают ограничения на весь класс, что может быть избыточно.Читать PEP полностью
@zen_of_python
