Загрузка…
Загрузка…
__slots__ ограничивает набор разрешенных атрибутов в классе и может уменьшить использование памяти, удалив __dict__ из экземпляров.
class Point:
__slots__ = ("x", "y")
def __init__(self, x: int, y: int) -> None:
self.x = x
self.y = yНюансы использования:
__dict__.__slots__ обычно немного быстрее.__dict__: вы не можете динамически добавлять новые атрибуты, которые не
перечислены в __slots__, если только вы явно не добавите "__dict__" в слоты.weakref, вы должны явно добавить
от "__weakref__" до __slots__.Суммируя:
__slots__ полезен для миллионов легких объектов, например графиков.
nodes.__dict__ и __weakref__.__slots__ ограничивает набор разрешенных атрибутов в классе и может уменьшить использование памяти, удалив __dict__ из экземпляров.
