Расскажи про __slots__

Python Junior Без компании
Расскажи про __slots__
Ответы
`__slots__` — это механизм в Python, позволяющий явно указать атрибуты класса, что экономит память и ускоряет доступ к ним. **Преимущества:** - Уменьшает потребление памяти, так как исключает `__dict__` для хранения атрибутов. - Ускоряет доступ к атрибутам (на ~20-30%). **Ограничения:** - Нельзя динамически добавлять новые атрибуты. - Наследование требует аккуратности: если родитель имеет `__slots__`, а потомок — нет, у потомка будет `__dict__`. **Пример:** ``` class Person: __slots__ = ('name', 'age') # Разрешенные атрибуты p = Person() p.name = "Alice" # OK p.age = 30 # OK p.salary = 5000 # AttributeError (не в __slots__) ``` Используйте `__slots__` для классов с фиксированным набором атрибутов, особенно в memory-sensitive приложениях.