Реализация хеш-метода не работает вместе с set() [Python]Python

Программы на Python
Anonymous
Реализация хеш-метода не работает вместе с set() [Python]

Сообщение Anonymous »

Я реализую хэш-функцию в объекте, и в качестве хэш-значения для такого объекта я использую хеш-значение имени пользователя, т.е.:

Код: Выделить всё

class DiscordUser:
def __init__(self, username):
self.username = username

def __hash__(self):
return hash(self.username)
Проблема возникает при добавлении таких объектов в хеш-набор и сравнении их с тем же именем пользователя, что и входные данные для конструктора, т.е.:

Код: Выделить всё

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)
Почему хэш-функция не работает как свойство или что я здесь делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/667 ... set-python

Вернуться в «Python»