Strange behaviour of 'is'

Ben C spamspam at spam.eggs
Thu Sep 21 22:37:14 CEST 2006


On 2006-09-21, Fijoy George <tofijoy at yahoo.co.in> wrote:
> Hi all,
>
> I am a bit perplexed by the following behaviour of the 'is' comparator
>
>>>> x = 2.
>>>> x is 2.
> False
>>>> y = [2., 2.]
>>>> y[0] is y[1]
> True
>
> My understanding was that every literal is a constructure of an object. 
> Thus, the '2.' in 'x = 2.' and the '2.' in 'x is 2.' are different objects. 
> Therefore, the comparison yields false.
>
> But my understanding does not explain the result of the second comparison. 
> According to the experiment, y[0] and y[1] are the same object!

I'm as baffled as you, even more so its implication:

>>> a = 2.
>>> b = 2.

>>> a is b
False

>>> a, b = 2., 2.
>>> a is b
True



More information about the Python-list mailing list