Back to questions
Junior — Middle
59
Каким образом можно добавить объекты пользовательского класса в структуру данных, основанную на множестве в Python?
Answer from AI
sobes.tech AI
Чтобы добавить объекты пользовательского класса в множество (set) в Python, эти объекты должны быть хешируемыми и сравнимыми, так как множество использует хеширование для быстрого поиска.
Для этого нужно реализовать в классе методы __hash__ и __eq__. Например:
class MyClass:
def __init__(self, value):
self.value = value
def __eq__(self, other):
if isinstance(other, MyClass):
return self.value == other.value
return False
def __hash__(self):
return hash(self.value)
obj1 = MyClass(10)
obj2 = MyClass(20)
obj3 = MyClass(10)
my_set = {obj1, obj2}
print(obj3 in my_set) # True, так как obj3 равен obj1 по значению
Без реализации этих методов объекты будут считаться разными, даже если их содержимое одинаково, и не смогут корректно использоваться в множестве.