Python Default Argument Gotcha: Mutable Objects

🚨 Python Gotcha: Mutable Default Arguments Trap Most beginners (and even experienced developers) make this subtle mistake in Python — and it can lead to unexpected bugs. 🔍 What’s the issue? When you use a mutable object (like a list or dictionary) as a default argument in a function, Python does NOT create a new object every time the function is called. Instead, it reuses the SAME object across all calls. 💡 Example: def add_item(item, my_list=[]): my_list.append(item) return my_list print(add_item(1)) # [1] print(add_item(2)) # [1, 2] ❌ unexpected 👉 Why this happens: The default list my_list is created only once when the function is defined — not each time it is called. So every call keeps modifying the same list. ✅ Correct Approach: def add_item(item, my_list=None): if my_list is None: my_list = [] my_list.append(item) return my_list print(add_item(1)) # [1] print(add_item(2)) # [2] ✅ correct 🧠 Key Takeaway: Never use mutable objects as default arguments. Use None and initialize inside the function instead. #Python #Programming #CodingTips #PythonTips #Developers #LearnPython

  • graphical user interface, text

To view or add a comment, sign in

Explore content categories