Thursday, 25 December 2025

Day 4: Using Mutable Default Arguments

 



Day 4: Using Mutable Default Arguments

Using mutable objects as default arguments is one of the most common and dangerous Python mistakes.


❌ The Mistake

def fun(x=[]):
x.append(1)
return x print(fun())
print(fun())

❗ Unexpected Output

[1]
[1, 1]

❌ Why this fails?

Because default arguments are evaluated only once, not every time the function is called.

The list [] is created a single time and then shared across all function calls.
Each call modifies the same list.


✅ The Correct Way

Use None as the default value and create the list inside the function.

def fun(x=None): if x is None: x = [] x.append(1)
return x print(fun())
print(fun())

✔ Correct Output

[1]
[1]

๐Ÿง  Simple Rule to Remember

  • ❌ Never use mutable objects (list, dict, set) as default arguments

  • ✅ Use None and initialize inside the function


✅ Key Takeaway

Default arguments in Python are shared, not recreated.
This can cause unexpected behavior if you’re not careful.

0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (118) AI (168) 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 (232) Data Strucures (14) Deep Learning (83) 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 (7) Google (47) Hadoop (3) HTML Quiz (1) HTML&CSS (48) IBM (41) IoT (3) IS (25) Java (99) Leet Code (4) Machine Learning (205) Meta (24) MICHIGAN (5) microsoft (9) Nvidia (8) Pandas (12) PHP (20) Projects (32) Python (1230) Python Coding Challenge (925) Python Mistakes (5) Python Quiz (361) 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)