要求
'''''' 1000个员工 如果几个员工对象的姓名和性别相同,这是一个人 请对这1000个员工做去重 # set集合的去重机制 : 先调用hash,再调用eq,eq不是每次都触发,只有hash值相等的时候才会触发 '''
class Employee:
def __init__(self,name,age,sex,partment):
self.name = name
self.age = age
self.sex = sex
self.partment = partment
def __hash__(self):
return hash('%s,%s' % (self.name,self.sex))
def __eq__(self, other):
if self.name == other.name and self.sex == other.sex:
return True
em_lst = []
for i in range(300):
em_lst.append(Employee('alex',18,'male','IT'))
for i in range(300):
em_lst.append(Employee('ben',1,'famale','HR'))
for i in range(400):
em_lst.append(Employee('carl',5,'unknown','SAFTY'))
# print(em_lst)
em_set = set(em_lst)
for person in em_set:
print(person.__dict__)