Sunday, 27 September 2026

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

 


Code Explanation:

1️⃣ Creating the Class
class A:

This creates a class named A.

The class is designed so that repeated calls to A() return the same object.

This pattern is commonly known as the Singleton pattern.

2️⃣ Creating the Class Variable
obj = None

obj is a class variable.

Initially, it contains:

obj → None

It will later store the single instance of class A.

3️⃣ Defining __new__()
def __new__(cls):

__new__() is responsible for creating and returning an object.

It runs before __init__().

Here, cls refers to the class A.

So conceptually:

cls → A

4️⃣ Checking Whether an Object Already Exists
if cls.obj is None:

Python checks whether obj is still None.

Initially:

cls.obj → None

Therefore, the condition is:

True

So Python enters the if block.

5️⃣ Creating the First Object
cls.obj = super().__new__(cls)

super().__new__(cls) calls the standard object creation mechanism.

A new instance of A is created and stored in:

cls.obj

Now:

cls.obj → first A object

6️⃣ Returning the Object
return cls.obj

The newly created object is returned.

Therefore:

a = A()

makes a point to that object.

Conceptually:

a ─────┐
       ↓
    A object
       ↑
cls.obj

7️⃣ Creating b
b = A()

Python calls A.__new__() again.

This time:

cls.obj is None

is False, because an object already exists.

Therefore, this block is skipped:

cls.obj = super().__new__(cls)

Instead, Python directly executes:

return cls.obj

So b receives the same object.

8️⃣ Comparing a and b
print(a is b)

The is operator checks whether two variables refer to the exact same object in memory.

Here:

a ─────┐
       ↓
    A object
       ↑
b ─────┘

Both point to the same instance.

Therefore:

a is b

is:

True

๐Ÿ”„ Complete Execution Flow
a = A()
   ↓
__new__()
   ↓
obj is None? → YES
   ↓
Create object
   ↓
Store in cls.obj
   ↓
Return object
   ↓
a points to object


b = A()
   ↓
__new__()
   ↓
obj is None? → NO
   ↓
Return existing object
   ↓
b points to SAME object

๐ŸŽฏ Final Output
True

400 Days Python Coding Challenges with Explanation


0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (119) AI (346) Android (25) AngularJS (1) Api (7) Assembly Language (2) aws (31) Azure (12) BI (10) book (1) Books (359) Bootcamp (14) C (78) C# (12) C++ (83) cloud (1) Course (93) Coursera (305) Cybersecurity (36) data (10) Data Analysis (47) Data Analytics (31) data management (16) Data Science (434) Data Strucures (19) Deep Learning (222) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (9) Excel (24) Finance (13) flask (4) flutter (1) FPL (17) Generative AI (77) Git (13) Google (55) Hadoop (3) HTML Quiz (1) HTML&CSS (48) IBM (43) IoT (3) IS (25) Java (99) Leet Code (4) Machine Learning (407) Meta (24) MICHIGAN (5) microsoft (13) Nvidia (8) Pandas (16) PHP (20) Projects (35) Python (1377) Python Coding Challenge (1255) Python Library (10) Python Mathematics (19) Python Mistakes (51) Python Pattern Challenge (13) Python Quiz (642) Python Tips (112) Questions (3) R (72) React (7) Scripting (3) security (4) Selenium Webdriver (4) Software (21) SQL (55) Udemy (22) UX Research (1) web application (11) Web development (9) web scraping (3)

Followers

Python Coding for Kids ( Free Demo for Everyone)