Python Tip of the Day: Beware of Mutable Default Arguments
Beware of Mutable Default Arguments
Author: Jeremy Morgan
Published: November 5, 2024

AI changed software development. This is how the pros use it.
Written for working developers, Coding with AI goes beyond hype to show how AI fits into real production workflows. Learn how to integrate AI into Python projects, avoid hallucinations, refactor safely, generate tests and docs, and reclaim hours of development time—using techniques tested in real-world projects.
Using mutable default arguments like lists can lead to unexpected behavior. Here’s why.
# Function with mutable default argument
def add_item(item, items=[]):
items.append(item)
return items
print(add_item(1)) # Output: [1]
print(add_item(2)) # Output: [1, 2] - Wait, what?

The Python Tip of the Day is a daily series published in the month of November. The tips are designed to help you become a better Python programmer. I post tips like this and more every single day on X. Let’s connect!

AI changed software development. This is how the pros use it.
Written for working developers, Coding with AI goes beyond hype to show how AI fits into real production workflows. Learn how to integrate AI into Python projects, avoid hallucinations, refactor safely, generate tests and docs, and reclaim hours of development time—using techniques tested in real-world projects.
