"/a" is not "/a" ?
Robert Kern
robert.kern at gmail.com
Sat Mar 7 18:41:15 EST 2009
On 2009-03-07 02:11, Albert Hopkins wrote:
> On Sat, 2009-03-07 at 03:07 -0500, Albert Hopkins wrote:
>> On Fri, 2009-03-06 at 23:57 -0800, Paul Rubin wrote:
>>> alex23<wuwei23 at gmail.com> writes:
>>>> But _you_ only _just_ stated "It does have some (generally small)
>>>> performance ramifications as
>>>> well" and provided timing examples to show it. Without qualification.
>>> The performance difference can be large if the objects are (for
>>> example) long lists.
>> I would think (not having looked) that the implementation of == would
>> first check for identity (for performance reasons)... but then that lead
>> me to ask: can an object be identical but not equal to itself?
>
> ... answered my own question
>
>
> class Foo:
> def __eq__(self, b):
> return False
>
>>>> x == Foo()
>>>> x is x
> --> True
>
>>>> x == x
> --> False
And for a practical, real world example:
In [1]: inf = 1e200 * 1e200
In [2]: inf
Out[2]: inf
In [3]: nan = inf / inf
In [4]: nan
Out[4]: nan
In [5]: nan is nan
Out[5]: True
In [6]: nan == nan
Out[6]: False
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
More information about the Python-list
mailing list