Sunday, 4 January 2026

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

 


Code Explanation:

1. Defining the Descriptor Class
class D:

A class named D is defined.

This class is a descriptor because it implements __get__.

2. Implementing the __get__ Method
    def __get__(self, obj, owner):
        return obj.__dict__.get("x", 0)

__get__ is called whenever the attribute x is accessed.

obj → the instance (a or b)

owner → the class (A)

It looks inside the instance dictionary (obj.__dict__) for "x".

If "x" exists, it returns its value; otherwise it returns 0.

So the descriptor stores values inside each object, not in the descriptor itself.

3. Using the Descriptor in a Class
class A:
    x = D()

x is a class attribute managed by descriptor D.

Any access to obj.x triggers D.__get__.

4. Creating Objects
a = A()
b = A()

Two separate instances of A are created: a and b.

Initially:

a.__dict__ = {}
b.__dict__ = {}

5. Assigning to a.x
a.x = 5

This does not call __set__ because D does not define __set__.

So Python treats a.x = 5 as a normal instance attribute assignment.

It creates:

a.__dict__["x"] = 5

6. Accessing b.x
print(b.x)

What happens internally:

Python finds x on the class as a descriptor.

Calls:

D.__get__(D_instance, b, A)


obj.__dict__ is b.__dict__, which is {}.

"x" is not found → returns 0.

7. Final Output
0

Final Answer
✔ Output:
0

700 Days Python Coding Challenges with Explanation

0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (118) AI (207) Android (25) AngularJS (1) Api (7) Assembly Language (2) aws (28) Azure (8) BI (10) Books (262) Bootcamp (1) C (78) C# (12) C++ (83) Course (84) Coursera (299) Cybersecurity (29) data (1) Data Analysis (26) Data Analytics (20) data management (15) Data Science (299) Data Strucures (16) Deep Learning (123) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (7) Excel (18) Finance (9) flask (3) flutter (1) FPL (17) Generative AI (62) Git (9) Google (48) Hadoop (3) HTML Quiz (1) HTML&CSS (48) IBM (41) IoT (3) IS (25) Java (99) Leet Code (4) Machine Learning (249) Meta (24) MICHIGAN (5) microsoft (9) Nvidia (8) Pandas (13) PHP (20) Projects (32) Python (1258) Python Coding Challenge (1042) Python Mistakes (50) Python Quiz (427) 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)