Встречается на собеседованиях • сегодня
На что влияет атрибут __slots__
__slots__ позволяет явно задавать фиксированный набор атрибутов для экземпляров класса, что дает несколько преимуществ:
- Экономия памяти – экземпляры не хранят
__dict__, что уменьшает их размер (особенно полезно при множестве объектов). - Быстрый доступ – доступ к атрибутам через
__slots__быстрее, чем через__dict__. - Защита от опечаток – нельзя динамически добавлять новые атрибуты, не указанные в
__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'
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы