[Tutor] Is there a test for hashability?

Chris Fuller cfuller084 at thinkingplanet.net
Thu Sep 1 21:29:15 CEST 2011


On Thursday 01 September 2011, Chris Fuller wrote:
> 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 at 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 at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor

*Ahem*

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

    return True


More information about the Tutor mailing list