【发布时间】:2019-07-29 06:15:54
【问题描述】:
我有一个 MyClass 类,我还重写了 __eq__ 方法来比较该类的两个对象,我可以这样做:
obj1 = MyClass(a = 2)
obj2 = MyClass(a = 2)
obj1 == obj2 # gives me True
现在我的问题是我有两个列表,包括这个类的对象,我想比较这两个列表的set是否相同。所以我期望:
list1 = [MyClass(a=1), MyClass(a=2)]
list2 = [MyClass(a=2), MyClass(a=1)]
set(list1) == set(list2)
给我True。但是我遇到了这个错误:
TypeError: unhashable type: 'MyClass'
这显然是因为set() 行。我怎样才能做到这一点? (我不关心使用或不使用set,只要我可以比较两个对象列表,无论它们的顺序如何。)
【问题讨论】:
标签: python python-3.x