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