Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpMgEq 89 of 174 menu
◀ ▶

Метод __eq__ в ООП в Python

Оператор == для обычного класса проверяет, указывают ли переменные на один и тот же объект. Чтобы два объекта с одинаковыми данными считались равными через ==, используют специальный метод __eq__.

Пусть у нас дан вот такой класс User:

class User: def __init__(self, name, age): self.name = name self.age = age

Создадим два объекта с одинаковыми значениями свойств:

user1 = User('john', 25) user2 = User('john', 25) print(user1 == user2) # выведет False print(user1 is user2) # выведет False

Добавим метод __eq__. Он получает второй объект и возвращает True, если данные совпадают:

class User: def __init__(self, name, age): self.name = name self.age = age def __eq__(self, other): if not isinstance(other, User): return False return self.name == other.name and self.age == other.age

Проверим:

user1 = User('john', 25) user2 = User('john', 25) print(user1 == user2) # выведет True print(user1 is user2) # выведет False

Сделайте класс Employee с именем и зарплатой. Реализуйте метод __eq__, чтобы объекты с одинаковыми данными были равны через ==.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить