How about adding some mixins to simplify the implementation of some of the fatter interfaces? class CompareMixin: """ Given an __eq__ method in a subclass, adds a __ne__ method Given __eq__ and __lt__, adds !=, <=, >, >=. """ class MappingMixin: """ Given __setitem__, __getitem__, and keys, implements values, items, update, get, setdefault, len, iterkeys, iteritems, itervalues, has_key, and __contains__. If __delitem__ is also supplied, implements clear, pop, and popitem. Takes advantage of __iter__ if supplied (recommended). Takes advantage of __contains__ or has_key if supplied (recommended). """ The idea is to make it easier to implement these interfaces. Also, if the interfaces get expanded, the clients automatically updated. Raymond Hettinger