python

时间:2019-01-28 03:39:49

标签: python python-3.x comparison-operators

我注意到python中256以下的整数的身份比较比较特殊。看看下面的代码。

a = 256 # or any number below
b = 256
print(a is b) # True
a = 257 # or any number above
b = 257
print(a is b) # False

我的猜测是,由于数字> 256不适合8位存储位置,因此python将其移动到其他位置并存储指针。 (我不是计算机科学专业的毕业生,可能我的理解是完全错误的。)

但是,如果我使用多个分配。情况有所不同。

a, b = 257, 257 # or any number above
print(a is b) # True

这是设计使然吗?可能是为了优化内存?为什么python会这样?

ps:我正在使用Python 3.6.1

0 个答案:

没有答案