If a class and its superclass both define __slots__, it appears that __getstate__() is not inherited from the superclass. Example: """ class Base (object): __slots__ = [] def __getstate__ (self): return tuple([getattr(self, attr) for attr in self.__slots__]) class Thing (Base): __slots__ = ['a', 'b'] def __init__ (self): self.a = 42 self.b = "boo!" abstract = Base() thing = Thing() print abstract.__getstate__ print thing.__getstate__ """ When I run this with a not-quite-current CVS Python: <bound method Base.__getstate__ of <__main__.Base object at 0x401f73b8>> <built-in function __getstate__> The upshot of this is that I can't just define one __getstate__() in the superclass of a bunch of __slots__-using classes -- I guess I'll have to set __getstate__ manually for each class. ;-( If this is a feature, is it documented anywhere? (BTW, I see the same behaviour with Python 2.2.2.) Greg -- Greg Ward <gward@python.net> http://www.gerg.ca/ "Very funny, Scotty. Now beam my *clothes* down."
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4