Jeff Shannon <[EMAIL PROTECTED]> wrote:
   ...
> hashes) is that, for a well-behaved hash function, then A == B should
> imply that hash(A) == hash(B).  (The reverse is *not* true, however --
> hash(A) == hash(B) does not necessarily say anything about whether A == B.)
> 
> If that is a correct condition for a well-behaved hash function, then it

Yep, I consider it part of the axioms of hash.

> is indeed impossible to have a well-behaved hash function that can be
> useful in the face of object mutation.  For something like a list, one
> can only define a poorly-behaved hash-like function.

In terms of performance, yes.  In terms of satisfying the axioms, no;
just "def __hash__(self): return 23" (or any other int) and the axioms
will be satisfied.   (Every isntance will hash to the same bucket, so,
performance sucks -- but, formally, everything IS fine;-).


Alex
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to