A veces parece natural tener un parámetro predeterminado que es una lista vacía. Sin embargo, Python ofrece un comportamiento inesperado en estas situaciones.¿Cuál es la manera pitónica de evitar los parámetros predeterminados que son listas vacías?
Si, por ejemplo, tengo una función:
def myFunc(working_list = []):
working_list.append("a")
print working_list
La primera vez que es llamada con el valor por defecto va a funcionar, pero las llamadas después de que se utilice una lista en constante actualización.
Entonces, ¿cuál es la manera pitónica de obtener el comportamiento que deseo (una nueva lista en cada llamada)?
si alguien está interesado en saber por qué sucede esto, echa un vistazo a http://effbot.org/zone/default-values.htm –
El mismo comportamiento ocurre para los conjuntos , aunque necesitas un ejemplo un poco más complicado para que aparezca como un error. – abeboparebop