Встречается на собеседованиях • сегодня
Какие плюсы и минусы slots
Плюсы:
- Экономия памяти: экземпляры классов со
__slots__не хранят__dict__, что уменьшает занимаемую память. - Быстрый доступ к атрибутам: доступ к слотам оптимизирован на уровне CPython.
- Защита от опечаток: нельзя динамически добавлять атрибуты, не указанные в
__slots__.
Минусы:
- Невозможность динамического добавления атрибутов.
- Наследование требует аккуратного обращения: если родитель имеет
__slots__, а потомок нет, то у потомка будет__dict__, но нужно явно прописывать__slots__в потомке. - Несовместимость с некоторыми библиотеками, которые полагаются на
__dict__.
Пример:
python
class Person:
__slots__ = ['name', 'age']
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 30)
p.name = "Bob" # OK
p.address = "123 St" # AttributeError
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы