Перейти к содержимому
19 / 22

Зачем нужны `__slots__` и какие у них ограничения?

__slots__ заменяет per-instance __dict__ фиксированным массивом и экономит ~40-60% памяти, плюс ускоряет доступ к атрибутам. Используй на классах с миллионами инстансов (точки, ORM-rows, события) или для иммутабельных value-объектов. Ограничения: нельзя добавлять новые атрибуты, нельзя множественное наследование с не-slots классами, конфликты при наследовании, отсутствие __weakref__ если не указан явно.