Thursday, 15 January 2026

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

 


Code Explanation:

1. Defining the Descriptor Class
class Tracker:

Tracker is a descriptor because it implements the __get__ method.

It will control access to an attribute when used inside another class.

2. Class-Level Shared State
    total = 0

total is a class variable of Tracker.

It is shared across all instances and all owners.

3. Implementing __get__
    def __get__(self, obj, owner):
        Tracker.total += 1
        obj.local = getattr(obj, "local", 0) + 1
        return obj.local, Tracker.total

What happens when x is accessed:

Tracker.total is incremented → counts total accesses across all objects.

obj.local is incremented → counts accesses for that specific object.

Returns a tuple (obj.local, Tracker.total).

4. Defining the Owner Class
class A:
    x = Tracker()

x is now a managed attribute controlled by the Tracker descriptor.

5. Creating Two Instances
a = A()
b = A()


Two separate objects of class A are created.

6. Evaluating the Print Statement
print(a.x, b.x, a.x)

This evaluates from left to right.

▶ First access: a.x

Tracker.total becomes 1.

a.local becomes 1.

Returns (1, 1).

▶ Second access: b.x

Tracker.total becomes 2.

b.local becomes 1.

Returns (1, 2).

▶ Third access: a.x again

Tracker.total becomes 3.

a.local becomes 2.

Returns (2, 3).

7. Final Output
(1, 1) (1, 2) (2, 3)

0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (118) AI (180) Android (25) AngularJS (1) Api (7) Assembly Language (2) aws (27) Azure (8) BI (10) Books (261) Bootcamp (1) C (78) C# (12) C++ (83) Course (84) Coursera (299) Cybersecurity (29) Data Analysis (25) Data Analytics (16) data management (15) Data Science (242) Data Strucures (15) Deep Learning (98) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (7) Excel (18) Finance (9) flask (3) flutter (1) FPL (17) Generative AI (51) 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 (219) Meta (24) MICHIGAN (5) microsoft (9) Nvidia (8) Pandas (12) PHP (20) Projects (32) Python (1238) Python Coding Challenge (968) Python Mistakes (28) Python Quiz (394) Python Tips (5) Questions (3) 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 (8) web scraping (3)

Followers

Python Coding for Kids ( Free Demo for Everyone)