Monday, 19 May 2025

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

 


Code Explanation:

Function Definition
def test(val, data={}):
The function test takes two parameters:
val: a required value.
data: an optional parameter with a default value of an empty dictionary {}.

Mutable Default Argument Trap
The default value {} is a mutable object (dictionary).
In Python, default arguments are evaluated only once, when the function is defined, not every time it’s called.
So if the function modifies that dictionary, the changes persist across function calls!

First Call: print(test(1))
data[1] = 1
Since no data is passed, it uses the default {}.
It adds the key-value pair 1: 1.
So now, data becomes {1: 1}.
The function returns this dictionary.

Output:
{1: 1}

Second Call: print(test(2))
Again, data is not passed, so it reuses the same dictionary from before, which is now {1: 1}.
data[2] = 2
This updates the same dictionary to {1: 1, 2: 2}.
It is returned.

Output:
{1: 1, 2: 2}

Final Output
{1: 1}
{1: 1, 2: 2}


0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (118) AI (152) Android (25) AngularJS (1) Api (6) Assembly Language (2) aws (27) Azure (8) BI (10) Books (251) Bootcamp (1) C (78) C# (12) C++ (83) Course (84) Coursera (298) Cybersecurity (28) Data Analysis (24) Data Analytics (16) data management (15) Data Science (217) Data Strucures (13) Deep Learning (68) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (7) Excel (17) Finance (9) flask (3) flutter (1) FPL (17) Generative AI (47) 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 (186) Meta (24) MICHIGAN (5) microsoft (9) Nvidia (8) Pandas (11) PHP (20) Projects (32) Python (1218) Python Coding Challenge (884) Python Quiz (342) 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)