Thursday, 19 March 2026

Python Coding challenge - Day 1083| What is the output of the following Python Code?

 


Code Explanation:

๐Ÿ”น 1️⃣ Defining Descriptor Class D
class D:

A class named D is created.

This class will act as a descriptor.

๐Ÿ”น 2️⃣ Defining the __get__ Method
def __get__(self, obj, objtype):
    return 100

This method runs when the attribute is accessed.

Parameters:

self → descriptor object

obj → instance accessing the attribute (a)

objtype → class of the instance (A)

Behavior:

return 100

So whenever the attribute is accessed, the value 100 is returned.

๐Ÿ”น 3️⃣ Defining the __set__ Method
def __set__(self, obj, value):
    obj.__dict__['x'] = value

This method runs when the attribute is assigned.

Example:

a.x = 5

Execution:

obj.__dict__['x'] = value

So internally Python stores:

a.__dict__['x'] = 5

๐Ÿ”น 4️⃣ Defining Class A
class A:

A class named A is created.

๐Ÿ”น 5️⃣ Assigning Descriptor to Class Attribute
x = D()

Here:

An instance of D is assigned to x.

Internally:

A.x → descriptor object

So x is now controlled by the descriptor D.

๐Ÿ”น 6️⃣ Creating an Object
a = A()

An instance a of class A is created.

Initially:

a.__dict__ = {}

๐Ÿ”น 7️⃣ Assigning Value to a.x
a.x = 5

Python sees that x is a descriptor with __set__.

So it calls:

D.__set__(descriptor, a, 5)

Inside the method:

a.__dict__['x'] = 5

Now:

a.__dict__ = {'x': 5}

๐Ÿ”น 8️⃣ Accessing a.x
print(a.x)

Now Python performs attribute lookup.

Lookup order:

1️⃣ Data descriptor

Since x is a data descriptor, Python calls:

D.__get__(descriptor, a, A)

Inside __get__:

return 100

๐Ÿ”น 9️⃣ Instance Dictionary Ignored

Even though:

a.__dict__['x'] = 5

Python ignores it because:

⚠ Data descriptors take priority over instance attributes.

✅ Final Output
100

0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (119) AI (223) Android (25) AngularJS (1) Api (7) Assembly Language (2) aws (28) Azure (9) BI (10) Books (262) Bootcamp (1) C (78) C# (12) C++ (83) Course (86) Coursera (300) Cybersecurity (29) data (5) Data Analysis (27) Data Analytics (20) data management (15) Data Science (326) Data Strucures (16) Deep Learning (135) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (7) Excel (19) Finance (10) flask (4) flutter (1) FPL (17) Generative AI (66) Git (10) Google (50) Hadoop (3) HTML Quiz (1) HTML&CSS (48) IBM (41) IoT (3) IS (25) Java (99) Leet Code (4) Machine Learning (264) Meta (24) MICHIGAN (5) microsoft (11) Nvidia (8) Pandas (13) PHP (20) Projects (32) pytho (1) Python (1266) Python Coding Challenge (1086) Python Mistakes (50) Python Quiz (447) Python Tips (5) Questions (3) R (72) React (7) Scripting (3) security (4) Selenium Webdriver (4) Software (19) SQL (46) Udemy (17) UX Research (1) web application (11) Web development (8) web scraping (3)

Followers

Python Coding for Kids ( Free Demo for Everyone)