Python Glossary English

все Python 3ООПфункция

__lt__

магические методы

Метод оператора <. Его одного хватает, чтобы sorted() и min() умели упорядочивать объекты.

Синтаксис

def __lt__(self, other): ...

sorted, min и heapq сравнивают только через <, поэтому для сортировки достаточно __lt__; max сравнивает через >, но и ему хватает одного __lt__: для a > b при отсутствии __gt__ Python пробует отражённое b < a. Операторы <= и >= из __lt__ не выводятся — их даёт декоратор functools.total_ordering по __eq__ и одному из сравнений.

Примеры

class Version:
    def __init__(self, major, minor):
        self.v = (major, minor)
    def __lt__(self, other):
        return self.v < other.v
    def __repr__(self):
        return f'{self.v[0]}.{self.v[1]}'
print(sorted([Version(3, 12), Version(3, 9), Version(3, 11)]))  # → [3.9, 3.11, 3.12]
print(Version(3, 9) > Version(3, 8))  # → True — отражённое Version(3, 8) < Version(3, 9)

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности