如何使Python中的类与集合一起工作?

如何使Python中的类与集合一起工作?,python,set,Python,Set,我有课 class Part: def __init__(self,name): self.name = name self.count = 0 def __hash__(self): return hash(self.name) def __lt__(self,other): return self.count < other.count def __eq__(self,other):

我有课

class Part:
    def __init__(self,name):
        self.name = name
        self.count = 0
    def __hash__(self):
        return hash(self.name)
    def __lt__(self,other):
        return self.count < other.count
    def __eq__(self,other):
        return self.name == self.count
然后我对它进行迭代,将其写入文件

for part in uniqueParts:
    f.write(part.name+": "+str(part.count)+'\n')
这是行不通的。它输出每个副本。因为uniqueParts是一个集合,所以我的类肯定出了问题,因为集合不能分辨出它们是重复的

现在,我可以用几种不同的方法解决我的特定问题(重新编写类,这样我就不需要它了(数据可能太简单了,不需要它自己的类),或者迭代并删除重复项,或者重新编写代码,这样在一开始就不会出现重复项),但我将来可能会再次遇到这个问题,我想知道我需要做些什么才能让集合与我自己编写的类一起工作

想法/帮助?

这看起来不对:

def __eq__(self,other):
    return self.name == self.count
也许你的意思是:

def __eq__(self,other):
    return self.name == other.name
def __eq__(self,other):
    return self.name == other.name