Sunday, 8 February 2026

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

 


Code Explanation:

1. Defining the descriptor class
class D:

This defines a class D.

Objects of this class will be used as descriptors.

2. Defining __get__
    def __get__(self, obj, owner):
        return "desc"

__get__ makes D a descriptor.

Parameters:

self → the descriptor object (D()).

obj → the instance accessing the attribute (b).

owner → the class of the instance (Box).

Whenever this descriptor is used to access an attribute, it returns "desc".

Since D defines only __get__, it is a non-data descriptor.

3. Defining another class
class Box:

This defines a class named Box.

4. Attaching the descriptor to the class
    x = D()

x is a class attribute.

It is assigned an instance of D, so x becomes a descriptor-managed attribute.

5. Creating an instance
b = Box()

This creates an object b of class Box.

6. Manually adding an instance attribute
b.__dict__["x"] = "inst"

This directly inserts "x": "inst" into the instance’s namespace.

Now b has its own instance attribute x.

This bypasses normal attribute assignment syntax.

7. Accessing the attribute
print(b.x)

Let’s see how Python resolves b.x:

Attribute lookup order (important here)

Data descriptors (have __get__ + __set__)

Instance attributes (b.__dict__)

Non-data descriptors (only __get__)

Class attributes

D is a non-data descriptor (only __get__).

Python checks b.__dict__ before non-data descriptors.

b.__dict__ contains:

{"x": "inst"}


So "inst" is returned.

The descriptor’s __get__ is not called.

✅ Final Output
inst

0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (118) AI (194) 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 (25) Data Analytics (18) data management (15) Data Science (271) Data Strucures (15) Deep Learning (112) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (7) Excel (18) Finance (9) flask (3) flutter (1) FPL (17) Generative AI (57) Git (9) Google (47) Hadoop (3) HTML Quiz (1) HTML&CSS (48) IBM (41) IoT (3) IS (25) Java (99) Leet Code (4) Machine Learning (235) Meta (24) MICHIGAN (5) microsoft (9) Nvidia (8) Pandas (13) PHP (20) Projects (32) Python (1249) Python Coding Challenge (1008) Python Mistakes (48) Python Quiz (416) 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)