Code Explanation:
1. Defining the Class
class Test:
A class named Test is defined.
The class does not define attributes like x or y.
2. Defining the __getattr__ Method
def __getattr__(self, name):
return 100
__getattr__ is a special method.
It is called only when an attribute is NOT found normally.
name contains the name of the missing attribute being accessed.
This method always returns 100, regardless of which attribute is missing.
3. Creating an Object
t = Test()
An instance t of class Test is created.
Initially:
t.__dict__ == {}
4. Accessing t.x
t.x
Step-by-step:
Python looks for x in t.__dict__ → ❌ not found
Looks in class Test → ❌ not found
Calls:
__getattr__(t, "x")
__getattr__ returns 100
✅ Result:
100
5. Accessing t.y
t.y
Step-by-step:
Python looks for y in t.__dict__ → ❌ not found
Looks in class Test → ❌ not found
Calls:
__getattr__(t, "y")
__getattr__ returns 100
✅ Result:
100
6. Printing the Values
print(t.x, t.y)
t.x → 100
t.y → 100
7. Final Output
100 100
✅ Final Answer
✔ Output:
100 100

0 Comments:
Post a Comment