Python Tip of the Day: Beware of Mutable Default Arguments

Beware of Mutable Default Arguments

Author: Jeremy Morgan
Published: November 5, 2024


Coding with AI

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.

See What's Inside

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?

“Python Tip of the Day: Beware of Mutable Default Arguments”


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!


Coding with AI

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.

See What's Inside