все 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Сообщить о неточности