is
用来检查对象的标识(id), id() 函数用于获取对象内存地址,而==
用来检查两个对象引用的变量的值是否相等。
通过一个例子说明。创建一些列表并将其分配给不同的名字。请注意,下面的b指向与a相同的对象:
a = [1,2,3]
b = a
c = [1,2,3]
下面来检查是否相等,你会注意到结果显示它们都是相等的。
print(a == b)
print(a == c)
#=> True
#=> True
但是它们具有相同的标识(id)吗?答案是不。
print(a is b)
print(a is c)
#=> True
#=> False
我们可以通过打印他们的对象标识(id)来验证这一点。
print(id(a))
print(id(b))
print(id(c))
#=> 4369567560
#=> 4369567560
#=> 4369567624
你可以看到:c和a和b具有不同的标识(id)。