Я использую Python 2.7.2 со встроенным IDLE на Windows 7 x64, и обнаружил очень странную вещь:
>>> a = "aaa"
>>> b = "aaa"
>>> print a is b
True
>>> print a == b
True
>>> print "%s , %s" % (id(a), id(b))
43872224 , 43872224
>>>
Это нормально, но, если строка содержит пробел:
>>> x = "x x"
>>> y = "x x"
>>> print x is y
False
>>> print x == y
True
>>> print "%s , %s" % (id(x), id(y))
43872008 , 43872128
>>>
Обратите внимание x is y
это False
! И у них разные идентификаторы!
Я пробовал этот код в PyCharm, все возвращает True
, поэтому я думаю, что это может быть ошибка IDLE.
Не правда ли? Или я что-то пропустил?