Запрет произвольных свойств в ООП в Python
Если имя свойства не входит в __slots__,
Python не даст его создать у экземпляра.
Попытка записи завершится ошибкой.
Пусть класс User разрешает только
name и age:
class User:
__slots__ = ('name', 'age')
Создадим объект и попробуем добавить
свойство salary:
user = User()
user.name = 'john'
user.salary = 1 # ошибка AttributeError
Так объект защищён от опечаток и от лишних полей, которых нет в задуманной модели данных.
Сделайте класс Employee
с __slots__ для name
и dept. Убедитесь, что запись
несуществующего свойства вызывает
ошибку.