我偶然发现了一个"功能"像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专业,所以我在"较低级别"编程方面。 (然而,正在努力......)