Junior — Middle
91
Python'da bir sınıf nasıl oluşturulur, böylece nesneleri başlatıldıktan sonra değiştirilemez olur?
AI'dan gelen yanıt
sobes.tech yapay zeka
Чтобы создать класс в 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
Такой класс создаст объекты, у которых нельзя изменить поля после создания.