On Thursday 01 September 2011, Richard D. Moores wrote:
> Thanks, James, from your ideas I've come up with this function as a
> general test for hashibility of any object:
> 
> def is_hashable(object):
>     try:
>         if hash(object):
>             return True
>     except TypeError:
>         return False
> 
> But is it?  It returns True for ints, floats, sets, tuples, strings,
> functions; and False for lists
> 
> Dick
> _______________________________________________
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor

You shouldn't be checking the truth value of the hash.  If it's zero, this 
function will fall through and return None!

def is_hashable(object):
   try:
        hash(object):
            return True
    except TypeError:
        return False

Is what you want.

Cheers
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to