python set中的对象如何去重
定义Person对象
class Person():
```
def __init__(self,name,number):
    self.name=name
    self.number=number
   
```
person1=Person('yms',('123456','123'))
person2=Person('yms',('123456','123'))
将两个对象都放到set里面
set([person1,person2])
我得出的结果set里面含有2个对象，但是明显这俩个对象一样的，请问怎么去重呢?注意一下('123456','123')是个元组不是普通字符串
你需要为这个类定义`__eq__`、`__ne__`、`__hash__`这三个函数，缺一不可：
```
class Person(object):
    def __init__(self, name, number):
        self.name = name
        self.number = number
        
    def __eq__(self, other):
        if isinstance(other, Person):
            return ((self.name == other.name) and (self.number == other.number))
        else:
            return False
            
    def __ne__(self, other):
        return (not self.__eq__(other))
        
    def __hash__(self):
        return hash(self.name) + hash(self.number)
        
p1 = Person('yms', ('123456','123'))
p2 = Person('yms', ('123456','123'))
print(set([p1, p2]))

```
由于你说`number`是元组，所以我就直接对其使用`hash`函数了。这个`hash`函数是随便写的，你自己根据实际情况调整。