В режиме ожидания python:
>>> a=1.1
>>> b=1.1
>>> a is b
False
Но когда я помещаю код в script и запускаю его, я получаю другой результат:
$cat t.py
a=1.1
b=1.1
print a is b
$python t.py
True
Почему это произошло? Я знаю, что is
сравнивает id
двух объектов, поэтому почему идентификаторы двух объектов одинаковы/уникальны в python script/idle?
Я также обнаружил, что если я использую небольшой int, например 1
, вместо 1.1
, результат будет таким же как в python script, так и в режиме ожидания python. Почему у маленьких int и small float было другое поведение?
Я использую CPython 2.7.5.