通过is运算符我们可以比较两个对象是否同一个
a = 2
b = 1 + 1
a is b
返回一个True
a = 1000
b = 999 + 1
a is b
返回一个False
两个相似的行为返回了不同的结果,可以看出来 python在对于整数的缓存上将某个范围内的整数当作成“简单整数”来看待,类似java中的常量表,而不在这个范围的整数则是每次创建不同的对象来处理
for i in range(1000):
x = i
m = i - 1
y = m + 1
if x is not y:
print x,'is not a simple integer'
break
那么通过这个for遍历我们可以寻找一下自己的环境中哪个整数开始不是 simple integer
这里我返回的是 257
呵呵继续研究一下