【发布时间】:2015-07-07 06:07:27
【问题描述】:
在python空闲:
>>> a=1.1
>>> b=1.1
>>> a is b
False
但是当我把代码放到一个脚本中并运行它时,我会得到不同的结果:
$cat t.py
a=1.1
b=1.1
print a is b
$python t.py
True
为什么会这样?我知道is比较了两个对象的id,那么为什么python脚本/空闲中两个对象的id是相同/唯一的?
我还发现,如果我使用一个小的 int,例如 1,而不是 1.1,那么在 python 脚本和 python idle 中的结果将是相同的。为什么 small int 和 small float 有不同的行为?
我正在使用 CPython 2.7.5。
【问题讨论】:
标签: python python-2.7 cpython