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

Что такое __slots__

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

Пример:

python
class User:
    __slots__ = ['name', 'age']  # Фиксированные атрибуты
    
    def __init__(self, name, age):
        self.name = name
        self.age = age

user = User("Alice", 30)
print(user.name)  # Alice
user.email = "alice@example.com"  # AttributeError (атрибут не в __slots__)

Плюсы:

  • Экономия памяти (особенно полезно для множества экземпляров).
  • Быстрый доступ к атрибутам.

Минусы:

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

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

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

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