[Python] Dubbi su hash e set

Pietro Battiston toobaz a email.it
Dom 4 Maggio 2008 17:00:49 CEST


Daniele Varrazzo ha scritto:
> Pietro Battiston ha scritto:
>
>   
>> In realtà poi al mio codice bastava una modifica minima: evitare che
>> "delete" azzeri self.ID: gli oggetti rimangono non immutabili ma il
>> valore di hash è dato dalla loro "parte immutabile".
>>     
>
> Già, ma in questo caso l'uguaglianza è data dal contenuto (usi set.__eq__). 
> Quindi puoi avere due oggetti uguali ma con hash diverso, che è contrario alla 
> semantica che dict si aspetta dall'hash (due oggetti uguali devono avere lo 
> stesso hash).
>
> Quindi non sono sicuro che tu abbia risolto il tuo problema, a meno che non 
> implementi anche:
>
>      def __eq__(self, other):
>          return self.ID == other.ID
>
> (e tanto vale usare la funzione id() a questo punto).
>   

Già, che stolto. Hai probabilmente scongiurato anticipatamente una mia
altra disperata richiesta ...

Pietro


Maggiori informazioni sulla lista Python