tgoop.com/pyproglib/6486
Create:
Last Update:
Last Update:
🔥 Что такое __slots__
в Python?__slots__
— это специальный атрибут класса, который:
✅ Оптимизирует потребление памяти за счёт отказа от __dict__
✅ Ускоряет доступ к атрибутам
✅ Запрещает добавление новых атрибутов, не прописанных в __slots__
Пример без __slots__
class Point:
def __init__(self, x: float, y: float) -> None:
self.x = x
self.y = y
def __str__(self) -> str:
#
point = Point(1.2, 3.4)
🔹 Минус: каждый объект хранит атрибуты в
__dict__
, что расходует памятьПример с
__slots__
class Point:
__slots__ = ('x', 'y')
def __init__(self, x: float, y: float) -> None:
self.x = x
self.y = y
def __str__(self) -> str:
#
point = Point(1.2, 3.4)
🔹 Плюсы:
1. Экономия памяти
2. Ускорение доступа к атрибутам
Когда
__slots__
НЕ стоит использовать?❌ Если нужно динамически добавлять атрибуты
❌ Если используется
__dict__
Статья: https://clc.to/QjMXpg
Использовали
__slots__
в проектах?Библиотека питониста #буст
BY Библиотека питониста | Python, Django, Flask

Share with your friend now:
tgoop.com/pyproglib/6486