Встречается на 2% собеседований по Python
Что такое атрибут __slots__ и для чего он используется
__slots__ — это специальный атрибут класса в Python, который позволяет явно указать, какие атрибуты могут существовать у его экземпляров. Он используется для оптимизации памяти и ускорения доступа к атрибутам.
Преимущества:
- Экономит память: экземпляры не хранят
__dict__, что уменьшает их размер. - Ускоряет доступ к атрибутам: доступ происходит через фиксированный слот, а не через словарь.
- Запрещает создание новых атрибутов (если не указан
__dict__в__slots__).
Пример:
python
class Person:
__slots__ = ['name', 'age'] # Разрешенные атрибуты
p = Person()
p.name = 'Alice' # OK
p.age = 30 # OK
p.job = 'Dev' # AttributeError: 'Person' object has no attribute 'job'Ограничения:
- Нельзя добавить новые атрибуты, не указанные в
__slots__. - Не работает с наследованием (если у родителя есть
__slots__, а у потомка нет, у потомка будет__dict__).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы