> This code
>> class X:
> def __cmp__(self, other):
> return 1
>> c1 = X()
>> d = {}
> d[c1] = None
>> raises a TypeError, unhashable type, since the class does
> not define a __hash__ method.
>> This error is no longer raised when X derives from object.
> Bug (or feature)?
It's something in between. :-(
I've been struggling with this since 2.2 and not found a good
solution. Built-in mutable types like list and dict deal with this by
having an explicit tp_hash slot that raises an exception.
Can you add a SF entry and assign it to me? Any insight you might
have in the matter would be appreciated.
I don't think I'll get to this before the 2.3a1 release.
--Guido van Rossum (home page: http://www.python.org/~guido/)