Встречается на собеседованиях • сегодня

Как сравнить два объекта, если они переданы в виде edge

Для сравнения объектов в Python можно использовать операторы == и is, но их поведение зависит от типа объектов и реализации __eq__.

Если объекты переданы как edge (например, в графах или структурах данных), важно учитывать их содержимое.

Пример:

python
class Edge:
    def __init__(self, u, v):
        self.u = u
        self.v = v
text
def __eq__(self, other):
    if not isinstance(other, Edge):
        return False
    return (self.u == other.u and self.v == other.v) or (self.u == other.v and self.v == other.u)
text

Здесь `__eq__` проверяет, являются ли два ребра одинаковыми (с учетом направления).  

**Использование:**  
```python
edge1 = Edge(1, 2)
edge2 = Edge(2, 1)
print(edge1 == edge2)  # True

Если ребра должны быть строго упорядочены, уберите or в __eq__. Для хеширования в множествах или словарях также нужно реализовать __hash__.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы