为什么这些语句不都 return 'true'?
Why don't these statements both return 'true'?
所以我在 python 中遇到了一些奇怪的行为:
>>> 2+1 is 3
True
>>> 2000+1 is 2001
False
当使用大整数时,它没有使用正确的逻辑,这是为什么?
如果两个变量指向同一个对象,is
将 return 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)
所以我在 python 中遇到了一些奇怪的行为:
>>> 2+1 is 3
True
>>> 2000+1 is 2001
False
当使用大整数时,它没有使用正确的逻辑,这是为什么?
is
将 return 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)