Introduction
Arithmetic operator overloading lets you change how operators like +, -, * work for your own objects. It helps your objects behave like numbers or other built-in types.
Jump into concepts and practice - no test required
class ClassName: def __add__(self, other): # code to add self and other return result def __sub__(self, other): # code to subtract other from self return result def __mul__(self, other): # code to multiply self and other return result
class Number: def __init__(self, value): self.value = value def __add__(self, other): return Number(self.value + other.value) def __str__(self): return str(self.value)
a = Number(5) b = Number(3) c = a + b print(c)
class Vector: def __init__(self, x, y): self.x = x self.y = y def __mul__(self, scalar): return Vector(self.x * scalar, self.y * scalar) def __str__(self): return f"({self.x}, {self.y})"
class Number: def __init__(self, value): self.value = value def __add__(self, other): return Number(self.value + other.value) def __sub__(self, other): return Number(self.value - other.value) def __mul__(self, other): return Number(self.value * other.value) def __str__(self): return str(self.value) num1 = Number(10) num2 = Number(4) print(num1 + num2) # 14 print(num1 - num2) # 6 print(num1 * num2) # 40
class Number:
def __init__(self, value):
self.value = value
def __add__(self, other):
return Number(self.value + other.value)
def __str__(self):
return str(self.value)
n1 = Number(5)
n2 = Number(10)
print(n1 + n2)class Multiplier:
def __init__(self, num):
self.num = num
def __mul__(self, other):
return self.num * other.num
m1 = Multiplier(3)
m2 = Multiplier(4)
print(m1 * m2)v1 + v2 and v1 * 3 where v1 and v2 are Vector objects?