在Python中,为什么'是' int大于256的运算符失败?

时间:2017-04-07 03:17:05

标签: python

我偶然发现了一个"功能"像Python一样:

x = 256
x is 256   # returns True

x = 257
x is 257   # returns False

范围[-5,256](含)中的整数返回True,而其他整数返回False。

我知道'是'运算符测试相同的参考,而' =='运算符测试相同的值。但是,我不了解这里涉及的黑暗魔法,谷歌搜索" Python是"没有帮助。任何人都朝着正确的方向轻推?

我的直觉是,返回True的数字在内存中具有永久位置 - 在幕后,Python正在取代' x'和' 256'提到该位置。较少使用的数字不会,因此存储在任何可用的内存中。但我不是CS专业,所以我在"较低级别"编程方面。 (然而,正在努力......)

0 个答案:

没有答案