A veces parece natural tener un parámetro predeterminado que es una lista vacía. Sin embargo, Python da un comportamiento inesperado en estas situaciones .
Si por ejemplo, tengo una función:
def my_func(working_list = []):
working_list.append("a")
print(working_list)
La primera vez que se llama, el valor predeterminado funcionará, pero las llamadas posteriores actualizarán la lista existente (con una "a" en cada llamada) e imprimirán la versión actualizada.
Entonces, ¿cuál es la forma pitónica de obtener el comportamiento que deseo (una lista nueva en cada llamada)?