[Python] Dubbi su hash e set
Daniele Varrazzo
piro a develer.com
Dom 4 Maggio 2008 16:45:42 CEST
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).
--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
Maggiori informazioni sulla lista
Python