Code Explanation:
1. Class Definition
class Box:
A new class named Box is created.
Objects of this class will store a number and support a custom subtraction operation.
2. Constructor Method (__init__)
def __init__(self, n):
self.n = n
The constructor runs whenever a Box object is created.
It takes one parameter n.
self.n = n stores the value in the object's attribute n.
Each Box object will now hold its own number.
3. Operator Overloading (__sub__)
def __sub__(self, other):
return Box(self.n * other.n)
This overrides the - (subtraction) operator.
Instead of subtracting, it multiplies the values (self.n * other.n).
It returns a new Box object containing the result.
Example: b1 - b2 is interpreted as b1.__sub__(b2).
4. Creating the First Object
b1 = Box(2)
A new Box object is created with n = 2.
Internally: b1.n = 2.
5. Creating the Second Object
b2 = Box(5)
Another Box object is created with n = 5.
Internally: b2.n = 5.
6. Using the Overloaded - Operator
print((b1 - b2).n)
b1 - b2 calls the overloaded method:
b1.__sub__(b2)
Inside __sub__:
self.n * other.n → 2 * 5 = 10
A new Box object is created with n = 10.
(b1 - b2).n prints 10.
Final Output
10


0 Comments:
Post a Comment