Junior — Middle
86
Python-да класс құрып, оның объектілерін инициализациядан кейін өзгермейтін ету қалай?
AI-дан жауап
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
Такой класс создаст объекты, у которых нельзя изменить поля после создания.