利用set()方法實現對象去重,重寫__hash__方法和__eq__方法告訴程序什麼樣的對象是同一個對象
# 寫一個類 擁有100個對象
# 擁有三個屬性 name age sex
# 如果兩個對象的name 和 sex 完全相同
# 我們就認爲這是一個對象
# 忽略age屬性 做這100個對象的去重工作
class Person():
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def __hash__(self):
return hash(self.name+self.sex)
def __eq__(self, other):
if self.name == other.name and self.sex == other.sex:
return True
else:
return False
if __name__ == '__main__':
list = []
for i in range(1,99):
list.append(Person('wangxiaojiang'+str(i),str(i),'female'))
list.append(Person('wangxiaojiang'+str(100),99,'female'))
list.append(Person('wangxiaojiang'+str(100),100,'female'))
list1 = set(list)
print(len(list1))
程序輸出99,對象去重成功