Alex wrote: > Thanks to both Alex Martelli and Steve Holden.. We need __slots__ for > other reasons, too long to explain, but basically to prevent assignment > of extra attributes. > > I ended up changing child classes this way: > > def __getstate__(self): > return(Parent.__getstate__(self), self.C) > def __setstate__(self, data): > Parent.__setstate__(self, data[0]) > self.C=data[1:] > > This seems to work fine. > OK, but do be aware that slots was intended solely as a memory-conservation measure where large numbers of objects are being created. You are therefore subverting its true intent by using it to limit the assignment of extra attributes (and there has been much recent discussion on this list, though not in this thread, about what to do instead.
regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC www.holdenweb.com PyCon TX 2006 www.python.org/pycon/ -- http://mail.python.org/mailman/listinfo/python-list