Что такое frozen dataclass?

Middle
191 просмотров
AFK Offer AI

frozen=True в @dataclass делает экземпляр immutable — попытка присвоить атрибут вызовет FrozenInstanceError. Под капотом — переопределяет __setattr__ и __delattr__. Frozen dataclass автоматически hashable (если все поля hashable) — можно использовать в set и как ключ dict. Идеально для value objects, конфигов, DTO. Минус: нельзя менять после создания, для «изменения» используй dataclasses.replace(obj, field=new_value) — создаёт новый экземпляр.

Следующий вопрос

Как работает WebSocket в FastAPI?