Junior — Middle
How can user-defined class objects be added to a set-based data structure in Python?
sobes.tech AI
Answer from AI
To add custom class objects to a set in Python, these objects must be hashable and comparable, as sets use hashing for quick lookup.
To do this, you need to implement the __hash__ and __eq__ methods in your class. For example:
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, because obj3 is equal to obj1 by value
Without implementing these methods, objects will be considered different even if their contents are the same, and they won't be used correctly in a set.