【发布时间】:2016-02-20 08:28:07
【问题描述】:
所以我在 python 中遇到了一些奇怪的行为:
>>> 2+1 is 3
True
>>> 2000+1 is 2001
False
使用大整数时逻辑不正确,这是为什么呢?
【问题讨论】:
所以我在 python 中遇到了一些奇怪的行为:
>>> 2+1 is 3
True
>>> 2000+1 is 2001
False
使用大整数时逻辑不正确,这是为什么呢?
【问题讨论】:
如果两个变量指向同一个对象,is 将返回 True。这样就有id。
In [21]: id(3)
Out[21]: 15538056
In [22]: id(2+1)
Out[22]: 15538056
In [23]: id(2001), id(2000+1)
Out[23]: (52399576, 54526360)
【讨论】: