Встречается на собеседованиях • сегодня
Для чего используется __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
интервью вопросы и ответы