real - matplotlib python
¿Por qué a Pylint no le gustan las funciones incorporadas? (3)
Tengo una línea como esta:
filter(lambda x: x == 1, [1, 1, 2])
Pylint está mostrando una advertencia:
W: 3: Used builtin function ''filter''
¿Porqué es eso? ¿Es una lista de comprensión el método recomendado?
Por supuesto que puedo reescribir esto así:
[x for x in [1, 1, 2] if x == 1]
Y no recibo ninguna advertencia, pero me preguntaba si hay un PEP para esto.
¿Porqué es eso? ¿Es una lista de comprensión el método recomendado?
La comprensión de la lista se recomienda en el ejemplo tutorial , que indica
es más conciso y legible.
y por la mayoría de los que responden en la Comprensión de la lista de Python de SO vs. Mapa donde está
- más eficiente para usar la comprensión de la lista que
filter
si está definiendo unalambda
cada vez - tal vez más legible (y con una eficiencia similar) para usar
filter
si la función está predefinida - es necesario usar
filter
ymap
si- Mapa del
map
, -
map
curry, o - usa programación funcional
- Mapa del
TL; DR: uso de la lista de comprensión en la mayoría de los casos
Me encontré con el mismo problema y no pude entender
por qué la función incorporada `input ''es mala. Yo tengo la intención
para deshabilitarlo:
pylint --bad-functions = "[mapa, filtro, aplicar]" YOUR_FILE_TO_CHECK_HERE
Una vez que te gusta la configuración:
pylint --bad-functions="[map,filter,apply]" --some-other-supercool-settings-of-yours
--generate-rcfile > test.rc
Verifique que su configuración esté en el archivo, por ejemplo:
cat test.rc | grep -i YOUR_SETTING_HERE
Después de eso, puedes usar este archivo localmente
pylint --rcfile test.rc --your-other-command-line-args ...
o incluso usarlo como su archivo de configuración predeterminado. Por esto, gentilmente lo remito a
pylint --long-help
Pylint a menudo habla sobre cosas que no debería. Puede deshabilitar la advertencia en un archivo .pylintrc.
Esta página http://pylint-messages.wikidot.com/messages:w0141 indica que el problema es que el filtro y el mapa han sido reemplazados por las listas de comprensión.
Una línea como esta en su archivo pylintrc silenciará la advertencia:
disable=W0141