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