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!