Back to questions
Junior — Middle
58
Каким образом можно выполнить сравнение двух объектов, представленных в форме ребра?
Answer from AI
sobes.tech AI
Если ребро представлено как объект с двумя вершинами (например, source и target), то сравнение двух таких объектов может зависеть от того, ориентированное ребро или нет.
Пример для неориентированного ребра (ребро между вершинами A и B равно ребру между B и A):
class Edge:
def __init__(self, source, target):
self.source = source
self.target = target
def __eq__(self, other):
if not isinstance(other, Edge):
return False
return {self.source, self.target} == {other.source, other.target}
def __hash__(self):
return hash(frozenset([self.source, self.target]))
# Пример использования
edge1 = Edge('A', 'B')
edge2 = Edge('B', 'A')
print(edge1 == edge2) # True
Для ориентированного ребра сравнение будет учитывать порядок вершин:
def __eq__(self, other):
if not isinstance(other, Edge):
return False
return self.source == other.source and self.target == other.target
Таким образом, сравнение зависит от контекста задачи и типа ребра.