[Python-Dev] collections.idset and collections.iddict? (original) (raw)

Guido van Rossum guido at python.org
Tue Mar 7 01:14:54 CET 2006


On 3/6/06, Raymond Hettinger <python at rcn.com> 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 wonder if this use case and the frequently requested case-insensitive dict don't have some kind of generalization in common -- perhaps a dict that takes a key function a la list.sort()?

-- --Guido van Rossum (home page: http://www.python.org/~guido/)



More information about the Python-Dev mailing list