Junior — Middle
73
Каким образом создать класс в Python, чтобы его объекты были неизменяемыми после инициализации?
Ответ от нейросети
sobes.tech AI
Чтобы создать класс в Python с неизменяемыми после инициализации объектами, можно использовать несколько подходов:
- Переопределить метод
__setattr__, чтобы запретить изменение атрибутов после инициализации. - Использовать
@dataclass(frozen=True)из модуляdataclasses(начиная с Python 3.7).
Пример с dataclass:
from dataclasses import dataclass
@dataclass(frozen=True)
class Point:
x: int
y: int
p = Point(1, 2)
# p.x = 3 # Это вызовет ошибку: FrozenInstanceError
Такой класс создаст объекты, у которых нельзя изменить поля после создания.