resueltos recorrer lista elementos ejercicios ejemplos ejemplo diccionarios diccionario dentro agregar python optional-parameters pylint optional-arguments

recorrer - ¿Por qué el diccionario vacío es un valor predeterminado peligroso en Python?



lista de diccionarios python (2)

Es peligroso solo si su función modificará el argumento. Si modifica un argumento predeterminado, persistirá hasta la próxima llamada, por lo que su dict "vacío" comenzará a contener valores en las llamadas que no sean la primera.

Sí, usar None es a la vez seguro y convencional en tales casos.

Puse llaves vacías como el valor predeterminado para un argumento opcional para una función de Python, y pylint (usando el paquete Sublime) me dijo que era peligroso. ¿Alguien puede explicar por qué es este el caso? ¿Y es una mejor alternativa para usar None en su lugar?


Veamos un ejemplo:

def f(value, key, hash={}): hash[value] = key return hash print f(''a'', 1) print f(''b'', 2)

Lo que probablemente espera obtener:

{''a'': 1} {''b'': 2}

Pero en realidad produce:

{''a'': 1} {''a'': 1, ''b'': 2}