[Python-Dev] NotHashableError? (Re: dict containment annoyance)

Scott Dial scott+python-dev at scottdial.com
Mon Aug 14 05:49:09 CEST 2006


Greg Ewing wrote:
> Guido van Rossum wrote:
>> try:
>>   hash(x)
>> except TypeError:
>>   # apparently x is not hashable
>>
>> then you're also swallowing any type errors in the computation of a
>> legitimate hash function.
> 
> Maybe it would help if there were a specific exception,
> such as NotHashableError, that hash functions were
> expected to raise in this situation instead of a
> generic TypeError.

I was going to suggest this, but then I realized that what is really 
desirable is a check for hashability. But since hashability is a deep 
property, it is difficult to check for.. seems like an very specific 
exception type would be a simple solution. FYI, I appreciate that 
swallowing all TypeErrors is bad form, so it would be nice if it was 
possible to differentiate ;-)

Some brief googling on the subject yield a discussion on py3k about this 
very subject.

http://mail.python.org/pipermail/python-3000/2006-July/002697.html

Guido wrote:
 > Personally, I'm not sure this problem needs solving; I don't recall
 > ever needing to know whether something is hashable. So perhaps it's of
 > purely theoretical importance? That would suit me fine given the above
 > dilemma...
 >
 > --Guido


-- 
Scott Dial
scott at scottdial.com
scodial at indiana.edu


More information about the Python-Dev mailing list