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

На что влияет атрибут __slots__

__slots__ позволяет явно задавать фиксированный набор атрибутов для экземпляров класса, что дает несколько преимуществ:

  1. Экономия памяти – экземпляры не хранят __dict__, что уменьшает их размер (особенно полезно при множестве объектов).
  2. Быстрый доступ – доступ к атрибутам через __slots__ быстрее, чем через __dict__.
  3. Защита от опечаток – нельзя динамически добавлять новые атрибуты, не указанные в __slots__.

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

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

Пример:

python
class Point:
    __slots__ = ('x', 'y')  # Только x и y разрешены
    
    def __init__(self, x, y):
        self.x = x
        self.y = y

p = Point(1, 2)
p.z = 3  # AttributeError: 'Point' object has no attribute 'z'
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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