Nella inattività pitone:Comportamento diverso in script python e in idle python?
>>> a=1.1
>>> b=1.1
>>> a is b
False
Ma quando ho messo il codice in uno script ed eseguirlo, mi metterò un risultato diverso:
$cat t.py
a=1.1
b=1.1
print a is b
$python t.py
True
perché è successo? So che is
confronta lo id
di due oggetti, quindi perché gli ID di due oggetti sono uguali/unici nello script/idle Python?
Ho anche scoperto che, se utilizzo un int piccolo, ad esempio 1
, anziché 1.1
, il risultato sarà lo stesso sia nello script python che in idle python. Perché il piccolo int e il piccolo float hanno un comportamento diverso?
Sto usando CPython 2.7.5.
vedi: http://stackoverflow.com/questions/15171695/weird-integer-cache-inside-python-2-6 – Will