Summary: In this tutorial, you will learn with example the significance of the __slots__ in Python programming language.
__slots__ is a special attribute in Python that allows a programmer to specify which attributes can be assigned to an instance of a class.
It is used to reduce the memory overhead of creating instances, as it allows the interpreter to store the instance variables in a more memory-efficient way.
Conside the following example for instance:
class Point: __slots__ = ['x', 'y'] def __init__(self, x, y): self.x = x self.y = y point = Point(1, 2) point.x # Output: 1 point.y # Output: 2 point.z = 3 # This will raise an AttributeError, because 'z' is not in the __slots__ attribute
In the example above, the
Point class has
__slots__ defined as
['x', 'y'], which means that the only attributes that can be assigned to an instance of this class are
If you try to assign an attribute that is not in the
__slots__ list, you will get an
It’s important to note that
__slots__ only works for instance variables, and not for class variables.
Also, it is important to note that
__slots__ can only be used for classes that do not inherit from other classes. It is because we cannot inherit the