Встречается на 2% собеседований по Python
Для чего используется __slots__ в Python
__slots__ оптимизирует память и ускоряет доступ к атрибутам, ограничивая набор допустимых атрибутов экземпляра. По умолчанию Python хранит атрибуты в словаре __dict__, что гибко, но требует больше памяти. __slots__ заменяет __dict__ фиксированным набором атрибутов.
Пример:
python
class Person:
__slots__ = ['name', 'age']
def __init__(self, name, age):
self.name = name
self.age = age
p = Person('Alice', 30)
p.name = 'Bob' # OK
p.salary = 5000 # AttributeError: 'Person' object has no attribute 'salary'Плюсы:
- Экономия памяти (особенно для множества экземпляров)
- Ускорение доступа к атрибутам (~20-30%)
Минусы:
- Нельзя динамически добавлять атрибуты
- Наследование требует аккуратности (если родитель имеет
__slots__, а потомок нет — будет__dict__)

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