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

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