Доступ к свойствам объекта. Property и slots
Обсудим интересный вопрос -как можно запретить менять наши атрибуты, реализовать логику изменения/получения атрибутов и как запретить добавлять объекту новые атрибуты.
Напоминаю: используем сет/гет, а также проперти ТОЛЬКО при наличии логики в получении или установке атрибута
1) __dict__ - это атрибут объектов в питоне, который хранит состояние
2) __setattr__ вызывается при попытке установить атрибут
3) property - это удобный механизм создания геттеров и сеттеров
4) __slots__ - создан для уменьшения памяти, занимаемой объектами, но как побочное свойство -не даст добавить объекту новый атрибут
Читать:
https://docs.python.org/3/reference/datamodel.html#object.__setattr__
https://docs.python.org/3/reference/datamodel.html?highlight=slots#slots
Присоединяйтесь к помощи каналу, будет интересно)
__slots__
property
__setattr__
get
set
python
attributes