Встречается на собеседованиях • сегодня

Что такое __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__)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы