【发布时间】:2016-11-07 19:28:13
【问题描述】:
在下面的 python 脚本中,为什么第二个断言会通过(即,当将 0 与 257 相加并将结果存储在 y 中时,x 和 y 成为不同的对象)?谢谢!
x = 257
y = 257
assert x is y
x = 257
y = 257 + 0
assert x is not y
【问题讨论】:
-
不要使用
is来检查相等性......基本上永远......它是内存位置变量......python 预存了少量的常量,它们恰好可以在其中工作某些情况... -
查看这个答案;它解释了为什么
is有时工作起来很奇怪! stackoverflow.com/questions/132988/…