I am implementing a hash function in an object and as my hash value for such object I use the username hashed value, i.e: class DiscordUser: def __init__(self, username): self.username = username def __hash__(self): return hash(self.username) The problem arises when adding such objects to the hash set and comparing them with the exact same username as input for the constructor, i.e: user = DiscordUser("Username#123") if user in users_set: # user is already in my users_set, such condition is NEVER MET, dont understand why else: # add user to users_set, this condition is met ALWAYS users_set.add(user) Why the hash funcion is not working as properly, or what im doing wrong here? Continue reading...