[英]use == to check if two objects have the same value or not in 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是不同的对象。 让我感到困惑的是,它们具有相同的价值,对吗? 然后使用“ ==”来检查两个对象是否具有相同的值,对吗? 我在这里想念什么吗?
您需要实现自定义__eq__
:
class foo:
def __init__(self,p1,p2):
self.a1 = p1
self.a2 = p2
def __eq__(self, another):
return self.a1 == another.a1 and self.a2 == another.a2
def main():
o1=foo("lucy","jack")
o2=foo('lucy','jack')
print(o1==o2)
main()
如果要将相等的对象定义为具有所有相同实例变量的对象,则可以轻松编写代码以测试每个变量:
class foo:
def __init__(self,p1,p2):
self.a1 = p1
self.a2 = p2
def __eq__(self, other):
return self.__dict__ == other.__dict__
def main():
o1=foo("lucy","jack")
o2=foo('lucy','jack')
print(o1==o2)
main()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.