Code Explanation:
1. Class Definition Begins
class Num:
A class named Num is created.
Objects of this class will hold a numeric value and define custom behavior for multiplication.
2. Constructor Method (__init__)
def __init__(self, x):
self.x = x
__init__ runs whenever a new Num object is created.
It takes one argument x.
self.x = x stores the value inside the object as an attribute named x.
Example:
Num(7) → object with x = 7.
3. Operator Overloading for Multiplication (__mul__)
def __mul__(self, other):
return Num(self.x + other.x)
__mul__ is a magic method that defines the behavior of the * operator.
Instead of multiplying, this method adds the two numbers:
self.x → value of the left object
other.x → value of the right object
Returns a new Num object whose value is:
self.x + other.x
This is custom operator overloading.
4. Creating the First Object
n1 = Num(7)
Creates an object n1 with x = 7.
5. Creating the Second Object
n2 = Num(9)
Creates an object n2 with x = 9.
6. Using the Overloaded * Operator
(n1 * n2)
Calls __mul__(n1, n2) internally.
Inside the method, the values are added:
7 + 9 = 16
Returns a new Num object with x = 16.
7. Printing the Result
print((n1 * n2).x)
Accesses the x attribute of the returned Num object.
The printed result is:
16
Final Output
16
.png)

0 Comments:
Post a Comment