Saturday, 9 August 2025

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

 


Code Explanation:

1. Defining the Outer Function

def outer():

    count = [0]

This is a function named outer.

Inside it, a list count = [0] is defined.

We use a list instead of an integer because lists are mutable and allow nested functions (closures) to modify their contents.

2. Defining the Inner Function

    def inner():

        count[0] += 1

        return count[0]

inner() is defined inside outer(), so it forms a closure and can access the count list from the outer scope.

count[0] += 1: This increases the first (and only) element of the list by 1.

It then returns the updated value.

3. Returning the Inner Function (Closure)

    return inner

The outer() function returns the inner() function — not executed, just the function itself.

This returned function will remember the count list it had access to when outer() was called.

4. Creating Two Independent Closures

f1 = outer()

f2 = outer()

f1 is assigned the result of outer() — which is the inner function with its own count = [0].

f2 is another independent call to outer(), so it also gets its own count = [0].

Each closure (f1 and f2) maintains its own separate state.

5. Printing the Results of Function Calls

print(f1(), f1(), f2(), f1(), f2())

Let’s evaluate each call:

f1() → increases f1’s count[0] from 0 to 1 → returns 1

f1() → count[0] becomes 2 → returns 2

f2() → its own count[0] becomes 1 → returns 1

f1() → count[0] becomes 3 → returns 3

f2() → count[0] becomes 2 → returns 2

Final Output:

1 2 1 3 2



0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (118) AI (161) 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 (225) Data Strucures (14) Deep Learning (75) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (7) Excel (17) Finance (9) flask (3) flutter (1) FPL (17) Generative AI (48) 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 (197) Meta (24) MICHIGAN (5) microsoft (9) Nvidia (8) Pandas (12) PHP (20) Projects (32) Python (1219) Python Coding Challenge (898) Python Quiz (348) 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)