Замороженный датакласс в ООП в Python
Иногда объект данных не должен меняться
после создания. Для этого у декоратора
@dataclass есть параметр
frozen=True.
Давайте сделаем замороженный класс
User:
from dataclasses import dataclass
@dataclass(frozen=True)
class User:
name: str
age: int
Создадим объект и попробуем изменить его поле:
user = User('john', 25)
user.age = 30 # ошибка
Сравнение объектов при этом работает как обычно:
user1 = User('john', 25)
user2 = User('john', 25)
print(user1 == user2) # выведет True
Сделайте замороженный датакласс
Employee с полями name
и salary.
Создайте объект и убедитесь,
что запись в salary
приводит к ошибке.