Sunday, 21 December 2025

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

 


Code Explanation:

1. Defining a Descriptor Class
class Desc:

A class named Desc is defined.

This class is going to act as a data descriptor.

Data descriptors implement at least one of:

__get__

__set__

__delete__

Here we are defining __set__.

2. Defining __set__ Method
    def __set__(self, obj, val):
        print("SET", val)


This is the critical part:

__set__(self, obj, val) is automatically called when you assign a value to an attribute defined as a descriptor.

Parameters:

self → the descriptor object (Desc instance)

obj → the object whose attribute is being set (a Demo instance)

val → the value being assigned (50)

Instead of storing the value, the method just prints "SET 50"

This is typical in descriptors — they control attribute assignment behavior.

3. Defining a Class That Uses Descriptor
class Demo:
    x = Desc()

A class named Demo is created.

x = Desc() means:

Class attribute x refers to an instance of Desc

Therefore, x becomes a managed attribute

Any assignment to d.x will trigger the descriptor’s __set__

This sets up a binding between Demo.x and Desc.set.

4. Creating an Object of Demo
d = Demo()

d is now an instance of Demo.

It inherits the descriptor attribute x.

At this moment:

Nothing prints yet

No setter is called yet

5. Assigning a Value to d.x
d.x = 50

This is where magic happens:

Because x is a descriptor, Python translates this assignment into:

Desc.__set__(<Desc instance>, d, 50)


Meaning:

The descriptor (Desc() instance) receives:

obj = d

val = 50

So the __set__ method executes:

print("SET", 50)

6. Final Output
SET 50


0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (118) AI (166) Android (25) AngularJS (1) Api (6) Assembly Language (2) aws (27) Azure (8) BI (10) Books (254) Bootcamp (1) C (78) C# (12) C++ (83) Course (84) Coursera (299) Cybersecurity (28) Data Analysis (24) Data Analytics (16) data management (15) Data Science (230) Data Strucures (14) Deep Learning (81) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (7) Excel (18) Finance (9) flask (3) flutter (1) FPL (17) Generative AI (50) Git (6) Google (47) Hadoop (3) HTML Quiz (1) HTML&CSS (48) IBM (41) IoT (3) IS (25) Java (99) Leet Code (4) Machine Learning (204) Meta (24) MICHIGAN (5) microsoft (9) Nvidia (8) Pandas (12) PHP (20) Projects (32) Python (1229) Python Coding Challenge (919) Python Mistakes (2) Python Quiz (358) Python Tips (5) Questions (2) R (72) React (7) Scripting (3) security (4) Selenium Webdriver (4) Software (19) SQL (45) Udemy (17) UX Research (1) web application (11) Web development (7) web scraping (3)

Followers

Python Coding for Kids ( Free Demo for Everyone)