🎁 New User? Get 20% off your first purchase with code NEWUSER20 Register Now →
Menu

Categories

Python Advanced

What is Slots?

A class mechanism that restricts attribute creation and reduces memory usage by using a fixed set of instance variables.

By default, Python objects store attributes in a __dict__ dictionary. __slots__ replaces this with a fixed tuple of allowed attributes: class Point: __slots__ = ('x', 'y'). This prevents adding arbitrary attributes and significantly reduces memory per instance.

Benefits include 30-40% memory reduction for classes with many instances, faster attribute access, and preventing typos in attribute names. Trade-offs include no __dict__, no multiple inheritance with different __slots__, and no dynamic attributes.