Skip to content

Python Operator Overloading

FULL-STACK WEB DEVELOPMENT BOOTCAMP

2024 COHORT SIGNUPS END TOMORROW

Operator overloading is an advanced technique we can use to make classes comparable and to make them work with Python operators.

Let’s take a class Dog:

class Dog:
    # the Dog class
    def __init__(self, name, age):
        self.name = name
        self.age = age

Let’s create 2 Dog objects:

roger = Dog('Roger', 8)
syd = Dog('Syd', 7)

We can use operator overloading to add a way to compare those 2 objects, based on the age property:

class Dog:
    # the Dog class
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __gt__(self, other):
        return True if self.age > other.age else False

Now if you try running print(roger > syd) you will get the result True.

In the same way we defined __gt__() (which means greater than), we can define the following methods:

Then you have methods to interoperate with arithmetic operations:

There are a few more methods to work with other operators, but you got the idea.

β†’ Get my Python Handbook
β†’ Get my Python Handbook
  • Learn modern web development in my BOOTCAMP (SIGNUP END TOMORROW FEB 20, 2024)
  • THE VALLEY OF CODE (+ PRO), your web development manual
  • I wrote 15+ coding BOOKS, all available in THE VALLEY OF CODE PRO
  • Indie solopreneur internet business masterclass SOLO LAB (summer 2024)