仅在新的用户定义的对象添加到对象列表中

时间:2019-06-11 09:28:18

标签: python

我有一个用户定义的对象列表(所有类型相同),并且我需要编写一个函数,仅当该列表中还没有该项目时,才将相同类的其他项目添加到列表中。伪代码看起来像这样:

object_list = [object1, object2]

def some_func(new_object):
    if new_object not in object_list:
        object_list.append(new_object)

该类具有许多属性,这些属性都不是实例唯一的。

1 个答案:

答案 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