我有一个用户定义的对象列表(所有类型相同),并且我需要编写一个函数,仅当该列表中还没有该项目时,才将相同类的其他项目添加到列表中。伪代码看起来像这样:
object_list = [object1, object2]
def some_func(new_object):
if new_object not in object_list:
object_list.append(new_object)
该类具有许多属性,这些属性都不是实例唯一的。
答案 0 :(得分:1)
重写__eq__方法应该可以解决问题 https://docs.python.org/3/reference/datamodel.html#object.eq
def __eq__(self, other):
"""Overrides the default implementation"""
if not isinstance(other, DefinedClass):
return NotImplemented
# comparison logic
return self.id1 == other.id1 && self.id2 == other.id2