tutorial professional instalar full español descargar community python pycharm

python - professional - pycharm tutorial



¿Por qué el inspector de Pycharm se queja de "d={}"? (3)

Esto se puede deshabilitar en la Configuración del proyecto o Configuración predeterminada.

  • Navega a Configuración -> Inspecciones -> Python
  • Desmarque "La creación del diccionario podría reescribirse por el literal del diccionario"

Al inicializar un diccionario con d = {} el inspector de código de Pycharm genera una advertencia, diciendo

Esta creación de diccionario podría reescribirse como un diccionario literal.

Si lo reescribo d = dict() la advertencia desaparece. Como {} ya es un diccionario literal, estoy bastante seguro de que el mensaje es erróneo. Además, parece que tanto d = {} como d = dict() son válidos y Pythonic.

Esta pregunta relacionada parece concluir que la elección es solo una cuestión de estilo / preferencia: diferencias entre "d = dict ()" y "d = {}"

¿Por qué Pycharm se quejaría de d = {} ?

ACTUALIZAR:

Mac lo clavó. La advertencia se aplicó realmente a varias líneas, no solo a la que se marcó.

Pycharm parece buscar una secuencia de declaraciones consecutivas donde inicialice un diccionario y luego establezca valores en el diccionario. Por ejemplo, esto activará la advertencia:

d = {} d[''a''] = 1

Pero este código no:

d = {} pass d[''a''] = 1


para aquellos que les gusta (al igual que yo) para inicializar diccionarios con una sola operación

d = { ''a'': 12, ''b'': ''foo'', ''c'': ''bar'' }

en lugar de muchas líneas como

d = dict() d[''a''] = 12 d[''b''] = ....

al final terminé con esto:

d = dict() d.update({ ''a'': 12, ''b'': ''foo'', ''c'': ''bar'' })

Pycharm no se queja de esto


¿Cuál es el siguiente código para tu declaración de diccionario?

Creo que pycharm desencadenará el error si tienes algo como:

dic = {} dic[''aaa''] = 5

como podrías haber escrito

dic = {''aaa'': 5}

Por cierto: el hecho de que el error desaparezca si usa la función no necesariamente significa que pycharm cree que dict() es un literal. Simplemente podría significar que no se queja por:

dic = dict() dic[''aaa''] = 5

HTH!