On Mon, Mar 06, 2006, Guido van Rossum wrote: > On 3/6/06, Raymond Hettinger <[EMAIL PROTECTED]> wrote: > > [Neil Schemenauer] > > >I occasionally need dictionaries or sets that use object identity > > > rather than __hash__ to store items. Would it be appropriate to add > > > these to the collections module? > > > > Why not decorate the objects with a class adding a method: > > def __hash__(self): > > return id(self) > > > > That would seem to be more Pythonic than creating custom variants of other > > containers. > > I hate to second-guess the OP, but you'd have to override __eq__ too, > and probably __ne__ and __cmp__ just to be sure. And probably that > wouldn't do -- since the default __hash__ and __eq__ have the desired > behavior, the OP is apparently talking about objects that override > these operations to do something meaningful; overriding them back > presumably breaks other functionality.
I assumed Neil wanted a container that was id() sensitive, I've done this occasionally myself to see if an object is in a container and not just an object equivalent to the one I am checking for. >>> a = set([1,2,3,4]) >>> b = set([1,2,3,4]) >>> a == b True >>> a is b False >>> container = [a] >>> b in container True >>> container = [id(a)] >>> id(b) in container False >>> -Jack _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com