Saturday, 14 February 2026

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

 



Code Explanation:

1. Defining the descriptor class

class D:

This defines a class named D.

Objects of this class will be used as descriptors.

2. Implementing __get__
    def __get__(self, obj, owner):
        return "D"

__get__ makes D a descriptor.

Parameters:

self → the descriptor object (D()).

obj → the instance accessing the attribute (c).

owner → the class (C).

Whenever x is accessed, this method returns "D".

3. Implementing __set__
    def __set__(self, obj, val):
        pass

Presence of __set__ makes D a data descriptor.

Data descriptors have higher priority than instance attributes.

This method ignores assignments but still controls access.

4. Defining the owner class
class C:

This defines a class named C.

5. Assigning the descriptor
    x = D()

x is a class attribute.

It is managed by the data descriptor D.

6. Creating an instance
c = C()

An object c of class C is created.

Initially, c.__dict__ is empty.

7. Manually inserting an instance attribute
c.__dict__['x'] = "I"

This directly adds an instance attribute x with value "I".

Normally, instance attributes override class attributes…

But not data descriptors.

8. Accessing the attribute
print(c.x)

๐Ÿ” Attribute lookup order (important here):

Data descriptors

Instance attributes (c.__dict__)

Non-data descriptors

Class attributes

x is a data descriptor.

Python calls D.__get__ before checking c.__dict__.

The instance attribute "I" is ignored.

✅ Final Output
D


0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (118) AI (198) 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 (276) Data Strucures (15) Deep Learning (115) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (7) Excel (18) Finance (9) flask (3) flutter (1) FPL (17) Generative AI (59) 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 (239) Meta (24) MICHIGAN (5) microsoft (9) Nvidia (8) Pandas (13) PHP (20) Projects (32) Python (1253) Python Coding Challenge (1025) Python Mistakes (50) Python Quiz (420) 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)