The list that remembers: mutable default arguments in Python
Python · Language
def append_to(item, target=[]) looks like it starts from an empty list every time. It does
not. One list is created when the def statement runs, and every call for the rest of the
program's life shares it.