[Python-Dev] bool does not want to be subclassed?
Phillip J. Eby
pje at telecommunity.com
Tue Feb 17 09:27:43 EST 2004
At 08:55 AM 2/17/04 +0100, Martin v. Löwis wrote:
>Phillip J. Eby wrote:
>>Actually, it might be even better to start with equality. Hashing is
>>only meaningful for objects that can be tested for equality.
>
>However, in Python, all objects can be tested for equality. So hashing
>is meaningful for all objects?
>
>It is not: it is only meaningful for objects which compare equal to the
>same other objects over their lifespan.
That's not valid logic; "X is only meaningful for Y" means that X implies
Y, not the other way around. The fact that Y is a tautology doesn't imply
that X is true, in fact if Y is a tautology then it only proves that "X
implies Y" is true, because everything implies Y.
However, I see your point that it's therefore silly to talk about things
that imply a tautology. :) Anyway, if you read the rest of my post, you'd
see that I explained the "lifespan" issue with a bit more precision than
you have stated above. For example, I pointed out that it isn't necessary
for an object to compare equal to the same other objects over its lifespan,
only over the lifespan following its first __hash__ invocation.
More information about the Python-Dev
mailing list