Structures

Duncan Booth duncan.booth at invalid.invalid
Tue Nov 4 08:55:45 EST 2008


Michele Simionato <michele.simionato at gmail.com> wrote:

> I did not expect such a large difference in instantiation time.
> However I was thinking about
> access time, and then the difference is not impressive (~20-25%):
> 

The difference in time is because when you create a normal instance Python 
has to create at least two objects: the instance itself, and a dict for its 
attributes. If you use __slots__ for all of the attributes then you no 
longer have a separate __dict__ so you save that extra object creation.

As soon as you allow other attributes (which happens for example if you 
have a base class without __slots__) I think you'll find the object 
creation time goes back up to normal.

-- 
Duncan Booth http://kupuguy.blogspot.com



More information about the Python-list mailing list