# How __lt__ Magical Operator is Useful in Python

Here we are going to learn about one of the magical operators in python. These magic operators are the special operators. Now we will learn about python __lt__ magical operator. These magical operators are useful to define the behavior of operators. __lt__ is a special method for less than operator(<). Usually, we are using less than operator to check the less than numbers. Already we learned about the less-than operator in the topic of The Secret of Comparators | Comparision Operators In Python.

Magical methods are something useful to define operators in python. There are a lot of magical operators available in python. Python __lt__ is a method that is useful to define the less-than operator. __gt__ is useful to define greater than. Likewise, we have a lot of magical operators. We are using double underscore to represent the magical methods. These magical methods cannot be called directly. These special methods are useful in operator overloading.

Contents

## What is Python __lt__ magical operator?

__lt__ is a special method that describes the less-than operator in python. > is a symbol for the less-than operator. It is denoted with a double underscore to represent the special method. This method is not called directly like the less-than operator.

## Python __lt__ magical operator uses

• It describes the less than operator.
• __lt__ is useful for sorting
• __lt__ is useful for comparing

## Definition of Python __lt__ magical operator

As we already know __lt__ operator cannot be used directly. We can define it as follows:

__lt__(self, other)

## Using Python __lt__ to compare the weight of two persons

class weight:
def __init__(self, weight):
self. weight= weight
def __lt__(self,other):
return self.weight<other.weight
a=weight(50)
b=weight(60)
print(a<b)

Creating a class named “weight”. Defining a __init__ function. Inside a function declaring the weight. Creating another function named __lt__. This function is to compare the weights. Variables a and b holds the weight of two different persons. It compares the weight if the condition is true. It will display the result as True. Otherwise False.

Output

True

## Using Python __lt__ to compare the weight of multiple persons

class weight:
def __init__(self, weight):
self. weight= weight
def __lt__(self,other):
return self.weight<other.weight
def __gt__(self,other):
return self.weight>other.weight
a=weight(50)
b=weight(60)
c=weight(70)
print(a<b and b>c)

Creating a class named “weight”. Defining a __init__ function. Inside a function declaring the weight. Creating another function named __lt__ and followed by __gt__. These functions are to compare the weights. Variables a, b, and c holds the weight of three different persons. It compares the weight if the condition is true; it will display the result as True. Otherwise False.

Output

False

a=0
def __init__(self,operator):
self.a=operator
def __lt__(self,other):
if self.a<other.a:
return True
else:
return False
print(f'x<y = {x < y}')

Creating a class overload. Defining a function init. Creating another function named lt. Using an if-else statement inside a function. If the number on the left-hand side is lesser than the right-hand side, it will display True. Otherwise False.

Output

x<y = False

## Using Python __lt__ to sort

import math
from functools import total_ordering
class point:
def __init__(self,a,b):
self.a = a
self.b = b
def __repr__(self):
return f'Point(a={self.a}, b={self.b})'
@property
def compare(self):
return math.sqrt(self.a * self.a + self.b * self.b)
def __lt__(self, other):
return self.compare< other.compare
print(sorted([
point(10, 5), point(30, 10), point(17, 7), point(2, 0)
]))

Importing math module. Creating a class named point. It will sort all the points. Here we are importing functools that is to support the less-than operator. Using a formatted function to display the output.

Output

[Point(a=2, b=0), Point(a=10, b=5), Point(a=17, b=7), Point(a=30, b=10)]

1. Can we use __lt__, magical operator, directly?

No, we can’t call the __lt__ magical operator directly.

2. What can we do by using the __lt__ magical operator?

By using we can use it to sort the list, operator overloading, and for comparing.