如何检查两个变量是否引用同一对象?
x 和 y 是两个变量。
我可以用 x == y
来检查它们是否相等,但我该如何检查它们是否是同一个对象呢?
举个例子:
x = [1, 2, 3]
y = [1, 2, 3]
现在 x == y
的结果是 True,因为 x 和 y 的值是相等的,但它们并不是同一个对象。
我想要一个类似 sameObject(x, y)
的方法,在这种情况下,它的结果应该是 False。
2 个回答
3
使用 x is y
或者 id(x) == id(y)
来判断它们是否是同一个东西。这两种方法看起来是一样的。
id(object)
会返回一个独特的数字(身份),这个概念类似于C语言中的指针。对于调试来说,使用 id(x) == id(y)
更方便。
而 x is y
看起来更好看。
==
是用来比较两个对象是否相等的,实际上是调用了 object.__eq__(self, other)
这个方法。
82
你可以用 is
来检查两个对象是否是同一个东西。
>>> x = [1, 2, 3]
>>> y = [1, 2, 3]
>>> x == y
True
>>> x is y
False