2. __slots__ are not actually useful, Pypy does what they do by default and deoptimizes as needed, CPython probably could as well
3. the only thing __slots__ do is lower memory usage (by not allocating a dict per instance) and PEP 412 has already improved that
__slots__ is not "crazy useful" by any definition of the expression, it is somewhat useful when you have a huge living number of simple objects.
2. __slots__ are not actually useful, Pypy does what they do by default and deoptimizes as needed, CPython probably could as well
3. the only thing __slots__ do is lower memory usage (by not allocating a dict per instance) and PEP 412 has already improved that
__slots__ is not "crazy useful" by any definition of the expression, it is somewhat useful when you have a huge living number of simple objects.