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

Зачем нужен __slots__

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

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

  • Экономит память (особенно полезно при множестве экземпляров).
  • Ускоряет доступ к атрибутам (избегает поиска в __dict__).

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

  • Нельзя динамически добавлять новые атрибуты.
  • Наследование требует аккуратности (если родитель имеет __slots__, дочерний класс должен его переопределить).

Пример:

python
class Person:
    __slots__ = ['name', 'age']  # Фиксированные атрибуты

p = Person()
p.name = "Alice"  # ОК
p.age = 30        # ОК
p.salary = 5000   # Ошибка: AttributeError

Используйте __slots__ для оптимизации в критичных к памяти сценариях.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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