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

Что такое атрибут __slots__ и для чего он используется

__slots__ — это специальный атрибут класса в Python, который позволяет явно указать, какие атрибуты могут существовать у его экземпляров. Он используется для оптимизации памяти и ускорения доступа к атрибутам.

Преимущества:

  • Экономит память: экземпляры не хранят __dict__, что уменьшает их размер.
  • Ускоряет доступ к атрибутам: доступ происходит через фиксированный слот, а не через словарь.
  • Запрещает создание новых атрибутов (если не указан __dict__ в __slots__).

Пример:

python
class Person:
    __slots__ = ['name', 'age']  # Разрешенные атрибуты

p = Person()
p.name = 'Alice'  # OK
p.age = 30        # OK
p.job = 'Dev'     # AttributeError: 'Person' object has no attribute 'job'

Ограничения:

  • Нельзя добавить новые атрибуты, не указанные в __slots__.
  • Не работает с наследованием (если у родителя есть __slots__, а у потомка нет, у потомка будет __dict__).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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