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

Остальные операторы порядка в ООП в Python

Чтобы не писать отдельный метод под каждый оператор сравнения, можно использовать декоратор total_ordering из модуля functools. Достаточно задать методы __eq__ и __lt__, а остальные сравнения Python построит сам.

Пусть у нас есть класс Employee с зарплатой:

from functools import total_ordering @total_ordering class Employee: def __init__(self, name, salary): self.name = name self.salary = salary def __eq__(self, other): if not isinstance(other, Employee): return False return self.salary == other.salary def __lt__(self, other): return self.salary < other.salary

Проверим разные операторы:

emp1 = Employee('john', 1000) emp2 = Employee('smit', 2000) print(emp1 <= emp2) # выведет True print(emp1 >= emp2) # выведет False print(emp1 != emp2) # выведет True

Сделайте класс User с возрастом. С помощью total_ordering задайте полный порядок по возрасту.

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