Check

Оптимизация по памяти: `__slots__`

Python Senior Яндекс
Что делает `__slots__` в классе Python? В каких случаях его стоит использовать, а в каких — нет?
Ответы
__slots__
`__slots__` запрещает создание `__dict__` у экземпляров и фиксирует набор атрибутов. Это уменьшает потребление памяти и ускоряет доступ к атрибутам для большого числа объектов. Пример: ```python class Point: __slots__ = ('x', 'y') def __init__(self, x, y): self.x = x self.y = y ``` Минусы: - нельзя динамически добавлять новые атрибуты; - нужно аккуратно учитывать наследование; - не всегда выигрыш заметен. Использовать `__slots__` имеет смысл для миллионов мелких объектов в performance-критичных местах.