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

Расскажи про __slots__

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

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

  • Уменьшает потребление памяти, так как исключает __dict__ для хранения атрибутов.
  • Ускоряет доступ к атрибутам (на ~20-30%).

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

  • Нельзя динамически добавлять новые атрибуты.
  • Наследование требует аккуратности: если родитель имеет __slots__, а потомок — нет, у потомка будет __dict__.

Пример:

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

p = Person()
p.name = "Alice"  # OK
p.age = 30        # OK
p.salary = 5000   # AttributeError (не в __slots__)

Используйте __slots__ для классов с фиксированным набором атрибутов, особенно в memory-sensitive приложениях.

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

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

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

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