Data attributes...

Alex Martelli aleax at
Fri Jan 25 13:28:54 CET 2002

"Mark McEahern" <marklists at> wrote in message
news:mailman.1011898958.2676.python-list at
> Emile van Sebille wrote:
> > You can have the class enforce rules that only allow pre-defined
> > attributes.  Look for __setattr__ as you continue through the tutorial.
> Is this what __slots__ is for in new-style classes?  (Python 2.2).

__slots__ (only for new-style classes, i.e. classes inheriting
directly or indirectly from object, i.e. classes whose metaclass
is type) constrains what data attributes can be bound in instances,
and (more relevantly) optimizes memory consumption by doing away
with the __dict__ that otherwise each instance carries.

__setattr__ is more flexible, trickier to use, and definitely
not "an optimization" (on the contrary it places some overhead
on each attribute setting you do on the instance).


More information about the Python-list mailing list