Python Operator Overloads

Brandon Rozek

March 13, 2020

I wrote a blog post about operator overloads in C++. Luckily for Python it is heavily document in what is called the Python Data Model. Though for the sake of having content, I’ll share some of the ones that I heavily use in my classes.

Operator Method
+ __add__(self, other)
== __eq__(self, other)
len() __len__(self)
str() __str__(self)
hash() __hash__(self)

Example Usage:

class Test:
	def __init__(self, x):
        self.x = x
    def __add__(self, other):
        return Test(self.x, other.x)
    def __eq__(self, other):
        return self.x == other.x
    def __len__(self):
        return len(self.x)
    def __str__(self):
        return self.x
    def __hash__(self):
        return hash(self.x)