Open In App

Python – __lt__ magic method

Last Updated : 04 Sep, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Python  __lt__  magic method is one magic method that is used to define or implement the functionality of the less than operator “<” , it returns a boolean value according to the condition i.e. it returns true if a<b where a and b are the objects of the class.

Python __lt__ magic method Syntax

Syntax: __lt__(self, obj)

  • self: Reference of the object.
  • obj: It is a object that will be compared further with the other object.                 

Returns: Returns True or False depending on the comparison.

Note: We can return any type of value from the __lt__ method and later we can convert it into a boolean value by the built-in method bool(), i.e.

Python3




class GFG:
    def __lt__(self, other):
        return "YES"
obj1 = GFG()
obj2 = GFG()
  
print(obj1 < obj2) 
print(type(obj1 < obj2))


Output:

YES
<class 'str'>

Python __lt__ magic method Example

Python3




class GFG:
    def __init__(self, Marks):
        self.Marks = Marks
student1_marks = GFG(90)
student2_marks = GFG(88)
  
print(student1_marks < student2_marks)


Output:

Traceback (most recent call last):

  File “/home/5e1498c49d4f318ce8c96b9b70d245f6.py”, line 7, in <module>

    print(student1_marks < student2_marks)

TypeError: ‘<‘ not supported between instances of ‘GFG’ and ‘GFG’

Explanation:

We can see that type error is generated as soon as we try to run this code because for this code we haven’t defined any __lt__ method so we can’t use the ‘<‘ operator for the same.

Hence we’ll have to define the __lt__ method first.

Python3




class GFG:
    def __init__(self, Marks):
        self.Marks = Marks
    def __lt__(self, marks):
          return self.Marks < marks.Marks
  
student1_marks = GFG(90)
student2_marks = GFG(88)
  
print(student1_marks < student2_marks)
print(student2_marks < student1_marks)


Output:

False
True

Conclusion:

Here we have seen how we can define our own less than dunder method and return customized value from it. Also, we have seen what type of problem we face if we don’t define a __lt__ method.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads