在Python中覆盖equals但仍然具有引用相等性检查

时间:2012-12-09 18:49:30

标签: python equals method-overriding

我在Python中覆盖了equals,但我仍然希望进行引用相等性检查。在Java中,这是==和equals之间的区别。 Python有类似的能力吗?

2 个答案:

答案 0 :(得分:3)

您可以使用is测试两个对象是否是同一个对象:

>>> a = 12
>>> a is a
True

答案 1 :(得分:2)

您可以将内置id用于此目的

>>> A=[1]
>>> B=A
>>> id(A) == id(B)
True
>>> A == B
True
>>> C = [1]
>>> A == C
True
>>> id(A) == id(C)
False