Почему Pylint не любит встроенные функции?



у меня есть такие строки:



filter(lambda x: x == 1, [1, 1, 2])


Pylint показывает предупреждение:



W:  3: Used builtin function 'filter'


почему это? является ли понимание списка рекомендуемым методом?



конечно, я могу переписать это так:



[x for x in [1, 1, 2] if x == 1]


и я не получаю никаких предупреждений, но мне было интересно, есть ли бодрость духа для этого?

382   3  

3 ответов:

Pylint часто болтает о вещах, она не должна. Вы можете отключить это предупреждение в .файл pylintrc.

эта страница http://pylint-messages.wikidot.com/messages:w0141 указывает на то, что проблема заключается в том, что фильтр и карта были заменены списками понимания.

такая строка в вашем файле pylintrc успокоит предупреждение:

disable=W0141

почему это? является ли понимание списка рекомендуемым методом?

понимание списка рекомендуется в учебник указано, что

это более лаконично и читабельно.

и большинство ответчиков на SO-х Понимание Списка Python Vs. Map здесь это

  1. более эффективным!--28--> использовать список понимание, чем filter Если вы определяете lambda каждый раз
  2. может быть более читабельным (и с подобной эффективностью) использовать filter Если функция предварительно определена
  3. нужно использовать filter и map если вы
    • карта map,
    • Карри map или
    • использовать функциональное программирование

TL; DR: используйте понимание списка в большинстве случаев

я столкнулся с такой же проблемой и не мог понять,

Почему встроенная функция 'input' плохая. Я тебя намереваюсь

чтобы отключить его:

pylint --bad-functions="[map, filter, apply] " YOUR_FILE_TO_CHECK_HERE

как только вам понравятся настройки:

pylint --bad-functions="[map,filter,apply]" --some-other-supercool-settings-of-yours
--generate-rcfile > test.rc

убедитесь, что ваши настройки в файл, например:

cat test.rc | grep -i YOUR_SETTING_HERE

после этого вы можете использовать этот файл локально

pylint --rcfile test.rc --your-other-command-line-args ...

или даже используйте его в качестве файла RCF по умолчанию. Для этого я любезно отсылаю вас к

pylint --long-help

Comments

    Ничего не найдено.