use ==检查python中两个对象是否具有相同的值

时间:2017-11-08 00:58:15

标签: python

以下是代码:

class foo:
   def __init__(self,p1,p2):
       self.a1 = p1
       self.a2 = p2

def main():
    o1=foo("lucy","jack")
    o2=foo('lucy','jack')
    print(o1==o2)
main()

我知道o1和o2是不同的对象。令我困惑的是,它们具有相同的价值,对吧?并且" =="用于检查两个对象是否具有相同的值,对吧?我在这里错过了什么吗?

3 个答案:

答案 0 :(得分:1)

您需要实施自定义ungroup()

__eq__

答案 1 :(得分:1)

当python不知道如何比较对象时 - 它会检查你是否正在处理同一个实例。这与is运算符的作用相同。

如果要覆盖python比较对象的方式 - 您需要在类中定义__eq__方法。

有关详细信息,请参阅the docs

答案 2 :(得分:1)

如果要将相等的对象定义为具有所有相同实例变量的对象,那么编写代码来测试每个变量就更容易了:

handleFiltering