0
0
PythonHow-ToBeginner · 3 min read

How to Implement __lt__ in Python: Simple Guide

In Python, implement the __lt__ method inside your class to define custom behavior for the less-than operator (<). This method should return True if the object is less than the other, and False otherwise.
📐

Syntax

The __lt__ method is defined inside a class to customize the behavior of the less-than operator (<). It takes two parameters: self (the current object) and other (the object to compare with). It must return a boolean value.

  • def __lt__(self, other): - method header
  • self - the current object
  • other - the object to compare against
  • Return True if self is less than other, else False
python
class MyClass:
    def __lt__(self, other):
        # return True if self < other
        pass
💻

Example

This example shows a class Box with a volume attribute. The __lt__ method compares boxes by their volume to decide which is smaller.

python
class Box:
    def __init__(self, length, width, height):
        self.length = length
        self.width = width
        self.height = height

    def volume(self):
        return self.length * self.width * self.height

    def __lt__(self, other):
        return self.volume() < other.volume()

box1 = Box(2, 3, 4)
box2 = Box(3, 3, 3)

print(box1 < box2)  # True because 24 < 27
print(box2 < box1)  # False because 27 is not less than 24
Output
True False
⚠️

Common Pitfalls

Common mistakes when implementing __lt__ include:

  • Not returning a boolean value (True or False).
  • Comparing incompatible types without checks, causing errors.
  • Forgetting to implement other comparison methods if needed (like __eq__).

Always ensure other is the expected type before comparing.

python
class Wrong:
    def __lt__(self, other):
        # Wrong: returns a number instead of boolean
        return self.value - other.value

class Right:
    def __init__(self, value):
        self.value = value

    def __lt__(self, other):
        if not isinstance(other, Right):
            return NotImplemented
        return self.value < other.value
📊

Quick Reference

  • Purpose: Customize behavior of < operator.
  • Signature: def __lt__(self, other):
  • Return: Boolean (True or False).
  • Use: Compare attributes or values inside objects.
  • Tip: Check other type to avoid errors.

Key Takeaways

Implement __lt__ to define custom less-than behavior for your class.
Always return a boolean value from __lt__.
Check the type of the other object before comparing to avoid errors.
Use __lt__ to compare meaningful attributes inside your objects.
Implement other comparison methods if full ordering is needed.