Зачем нужен __slots__

Python Junior Без компании
Зачем нужен __slots__
Ответы
`__slots__` в Python используется для оптимизации памяти и ускорения доступа к атрибутам класса. Он позволяет явно указать, какие атрибуты может иметь экземпляр класса, заменяя динамический словарь `__dict__` фиксированным набором дескрипторов. **Преимущества:** - Экономит память (особенно полезно при множестве экземпляров). - Ускоряет доступ к атрибутам (избегает поиска в `__dict__`). **Ограничения:** - Нельзя динамически добавлять новые атрибуты. - Наследование требует аккуратности (если родитель имеет `__slots__`, дочерний класс должен его переопределить). **Пример:** ``` class Person: __slots__ = ['name', 'age'] # Фиксированные атрибуты p = Person() p.name = "Alice" # ОК p.age = 30 # ОК p.salary = 5000 # Ошибка: AttributeError ``` Используйте `__slots__` для оптимизации в критичных к памяти сценариях.