Что такое
__slots__?Ответ: По умолчанию экземпляры классов хранят свои атрибуты во внутреннем словаре __dict__. Это гибко, но требует больше памяти и делает доступ к полям немного медленнее, потому что идёт поиск по словарю.
__slots__ позволяет зафиксировать набор допустимых атрибутов и отказаться от использования __dict__. Вместо словаря Python выделяет компактные слоты — тем самым уменьшается расход памяти на каждый объект и ускоряется доступ к атрибутам. Это особенно важно, когда в программе создаются миллионы экземпляров класса или критична производительность доступа к данным.
Ограничение одно: добавить атрибут, которого нет в __slots__, нельзя. Чтобы сохранить возможность динамически создавать поля, в список слотов можно добавить __dict__.
tags: #собеседование
➡ Python Developer | 📲 MAX