gpt4 book ai didi

Python 3.6.5 "is"和 "=="用于超出缓存间隔的整数

转载 作者:太空宇宙 更新时间:2023-11-03 11:15:20 24 4
gpt4 key购买 nike

<分区>

我想先说明一下,我知道 == 之间的区别是,一个是引用,另一个是对象。我还知道 python 在启动时缓存 (-5, 256) 范围内的整数,因此在将它们与 is 进行比较时它们应该可以工作。

但是我看到了一个奇怪的行为。

>>> 2**7 is 2**7
True
>>> 2**10 is 2**10
False

这是意料之中的,2**71282**101024 ,一个在 (-5, 256) 区间内,另一个不在区间内。

然而...

>>> 10000000000000000000000000000000000000000 is 10000000000000000000000000000000000000000
True

为什么返回 True?它显然是一个高于任何类型缓存间隔的值,2**10 is 2**10 清楚地表明 is 实际上不适用于 以上的整数256。那么...为什么会发生这种情况?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com