__slots__ в Python и зачем он используется?__slots__ — это специальный атрибут класса, который определяет фиксированный набор атрибутов, которые можно создать для объекта. Это помогает уменьшить потребление памяти, так как исключает использование стандартного словаря __dict__ для хранения атрибутов экземпляра.➡️ Пример:
class Person:
__slots__ = ['name', 'age'] # Определяем допустимые атрибуты
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 30)
print(p.name) # Alice
# Ошибка: нельзя добавить атрибут, не указанный в __slots__
# p.address = "123 Main St"
🗣️ В этом примере класс Person использует __slots__ для ограничения набора атрибутов до name и age. Это экономит память, так как каждый экземпляр хранит только указанные атрибуты, без лишнего словаря. Используйте __slots__ в классах, где создаётся много экземпляров, чтобы оптимизировать использование памяти.
🖥 Подробнее тут