Curiosidad sobre __hash__()

Francesc Alted faltet en pytables.org
Jue Feb 5 14:07:20 CET 2009


A Thursday 05 February 2009, David García escrigué:
> > Uh, creo que no:
> >
> > In [6]: a = (2,)
> >
> > In [7]: id(a)
> > Out[7]: 136302508
> >
> > In [8]: hash(a)
> > Out[8]: -1658481943
> >
> > o sea, que el hash no devuelve la posición de memoria y se trata de
> > un verdadero hash.  Aquí hay un ejemplo de como se calculan los
> > hashes para algunos objetos:
>
> Es id() la que devuelve la dirección de memoria.

Si, es lo que queria decir.

>
> > http://effbot.org/zone/python-hash.htm
>
> Tampoco __hash__() es muy fiable como "hash":
> >>> a = (2,)
> >>> b = (2,)
> >>> a.__hash__()
>
> -1658481943
>
> >>> b.__hash__()
>
> -1658481943
>
> ...
>
> >>> id(a)
>
> 3084404620L
>
> >>> id(b)
>
> 3084316012L

A ver, si a y b *son* el mismo objeto ((2,), que no necesariamente es la 
misma dirección de memoria), la hash ha de ser la misma, no?

-- 
Francesc Alted
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es