Sobes.tech
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 по значению

Без реализации этих методов объекты будут считаться разными, даже если их содержимое одинаково, и не смогут корректно использоваться в множестве.