[Python-Dev] redefining is
Michael Chermside
mcherm at mcherm.com
Fri Mar 19 14:25:47 EST 2004
Barry writes:
> Using == for identity objects is the wrong thing. We should discourage
> tests like "if obj == None" in favor of "if obj is None".
I hear you, but I disagree. There is a good reason why the default
implementation of '==' compares by object identity.
I don't care much whether we use "if obj is None" rather than
"if obj == None", since the PARTICULAR case of comparing with None
is mostly just an idiom. But if you have two different identity
objects and want to compare them, then I would prefer
if currentCustomer == desiredCustomer:
to
if currentCustomer is desiredCustomer:
However, either one works, and I won't gripe about your using 'is'
if you prefer it. I _WOULD_ gripe if you overrode __eq__ to raise
an exception in order to force me to use 'is' not '==' on your
objects (not that you ever suggested doing so).
-- Michael Chermside
More information about the Python-Dev
mailing list