
The operator overloading in Python means provide extended meaning beyond their predefined operational meaning. Such as, we use the "+" operator for adding two integers as well as joining two strings or merging two lists. We can achieve "+" opertor for adding 2 objects.
Example 1: Add 2 objects using operator overloading
class example:
def get(self, a):
self.a=a
def put(self):
print("Result:",self.a)
def __add__(self,ex2):
ex4=example()
ex4.a = self.a+ex2.a
return ex4
ex1=example()
ex2=example()
ex1.get(int(input("Enter number")))
ex2.get(int(input("Enter number")))
ex3=example()
ex3=ex1+ex2
ex3.put()
class Result(Student, Marks): # Multiple inheritance
| S.No | Operator | Magic Function |
|---|---|---|
| + | __add__(self, other) | |
| - | __sub__(self, other) | |
| * | __mul__(self, other) | |
| / | __truediv__(self, other) | |
| % | __mod__(self, other) | |
| ** | __pow__(self, other) | |
| < | __lt__(self, other) | |
| > | __gt__(self, other) | |
| <= | __le__(self, other) | |
| ** | __pow__(self, other) | |
| >= | __ge__(self, other) | |
| == | __eq__(self, other) | |
| != | __ne__(self, other) |
Method Overloading means we can create multiple methods in a class with the same name but different arguments. Python does not support method overloading
Example 2: Perform method overloading with default arguments.
class example:
def add(self, a=None, b=None, c=None):
s=0
if a!=None and b!=None and c!=None:
s=a+b+c
elif a!=None and b!=None:
s=a+b
else:
s=a
return s
ex1=example()
print(ex1.add(1))
print(ex1.add(1,2))
print(ex1.add(1,2,3))
Method Overridding means we can override method of base class into derived class. In Method overridding name and arguments of method is same.
Example 3: Perform method overridding
class A:
def display(self):
print("Class A - Display method")
Class B:
def display(self):
print("Class B - Display method")
a1=B()
a1.display()
Ad: