Встречается на 5% собеседований по Python
Зачем нужен __slots__
__slots__ в Python используется для оптимизации памяти и ускорения доступа к атрибутам класса. Он позволяет явно указать, какие атрибуты может иметь экземпляр класса, заменяя динамический словарь __dict__ фиксированным набором дескрипторов.
Преимущества:
- Экономит память (особенно полезно при множестве экземпляров).
- Ускоряет доступ к атрибутам (избегает поиска в
__dict__).
Ограничения:
- Нельзя динамически добавлять новые атрибуты.
- Наследование требует аккуратности (если родитель имеет
__slots__, дочерний класс должен его переопределить).
Пример:
python
class Person:
__slots__ = ['name', 'age'] # Фиксированные атрибуты
p = Person()
p.name = "Alice" # ОК
p.age = 30 # ОК
p.salary = 5000 # Ошибка: AttributeErrorИспользуйте __slots__ для оптимизации в критичных к памяти сценариях.

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