Курс Python → Декоратор total_ordering для класса Point

Декоратор functools.total_ordering в Python используется для упрощения процесса реализации операторов сравнения в пользовательских классах. Он позволяет автоматически создать остальные операторы сравнения (gt, le, ge, ne) на основе уже объявленных операторов сравнения (lt и eq). Для использования этого декоратора необходимо просто объявить методы __lt__ (less than) и __eq__ (equal) в вашем классе.

Пример использования декоратора functools.total_ordering:


from functools import total_ordering

@total_ordering
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    
    def __eq__(self, other):
        return self.x == other.x and self.y == other.y
    
    def __lt__(self, other):
        return self.x < other.x or (self.x == other.x and self.y < other.y)

В данном примере класс Point имеет методы __eq__ и __lt__, что позволяет использовать декоратор @total_ordering. После применения декоратора, автоматически создаются остальные операторы сравнения (__gt__, __le__, __ge__, __ne__>), основанные на уже объявленных методах.

Таким образом, использование декоратора functools.total_ordering позволяет сэкономить время и упростить процесс реализации операторов сравнения в пользовательских классах. Это особенно удобно, когда необходимо сравнивать экземпляры классов по их атрибутам или значениям.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Enum в Python
  2. Простой калькулятор Python
  3. Равенство и идентичность в Python
  4. Переопределение метода __or__()
  5. Склеивание строк через метод join()
  6. Функция format() в Python
  7. Magic Commands — улучшение работы с Python
  8. Метод __irshift__ для побитового сдвига вправо
  9. Модуль pprint
  10. Декораторы с @wraps
  11. Отладка кода
  12. Конкатенация строк в Python
  13. Мощь вложенных функций в Python
  14. Метод rmatmul для обратного матричного умножения
  15. Оператор объединения словарей
  16. discard() — удаление элемента из множества
  17. Defaultdict в Python
  18. Особенности множеств в Python
  19. Преобразование в float
  20. Скрытие вывода данных
  21. Сериализация объектов в Python
  22. Основы работы с базами данных в Python
  23. Defaultdict в Python
  24. Создание списков в Python
  25. Преобразование типов данных в set comprehension
  26. Множественное присваивание в Python
  27. Преобразование чисел в восьмеричную строку
  28. Переменные в Python
  29. Эффективная конкатенация строк в Python
  30. Функция с *args.
  31. Создание функций с произвольным количеством аргументов
  32. Операции с комплексными числами
  33. Создание копии итератора
  34. Область видимости переменных
  35. Метод rsub для пользовательских чисел
  36. Итераторы в Python
  37. Преобразование документов в PDF с помощью Spire.Office
  38. Метод count() для списка
  39. Функция с **kwargs в Python
  40. Работа с файлами в Python
  41. Уникальность ключей в словаре
  42. Символ подчеркивания в Python
  43. Оформление кода по PEP 8
  44. Обработка ошибок ввода данных

Marketello читают маркетологи из крутых компаний

Marketello.org — площадка для начинающих интернет-маркетологов, которая поможет прокачать твои навыки.
Много практики, в меру теории. Уникальный подход к обучению.
Присоединяйся!
Для авторов и партнёров
Facebook: https://fb.com/dmitriy.komarovskiy
© 2017-2025, Все права защищены.