Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpSlFr 114 of 174 menu
◀ ▶

Запрет произвольных свойств в ООП в 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. Убедитесь, что запись несуществующего свойства вызывает ошибку.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить