class HtmlPerson: def __init__(self, name, id, group): self.name = name self.id = id self.group = group def __repr__(self): return f"{self.name} ({self.id}, {self.group})" def __eq__(self, o): if not isinstance(o, HtmlPerson): return False return str(self) == str(o) def __hash__(self): return str(self).__hash__() class ResultPerson: def __init__(self, firstName, lastName, club, id=None, group=None): self.firstName = firstName self.lastName = lastName self.name = f"{firstName} {lastName}" self.club = club self.id = id self.group = group def __eq__(self, o): if not isinstance(o, ResultPerson): return False return ( self.firstName == o.firstName and self.lastName == o.lastName and self.club == o.club and self.id == o.id ) def __repr__(self): if self.id is None: return f"{self.name} ({self.club})" else: return f"{self.name} ({self.club}) [{self.id}]" def __hash__(self): text = str(self) return text.__hash__()