При поиске в проекте Python я нашел несколько строк с комментариями # noqa.
import sys
sys.path.append(r'C:\dev')
import some_module # noqa
Что noqaзначит в Python? Это специфично только для Python?
При поиске в проекте Python я нашел несколько строк с комментариями # noqa.
import sys
sys.path.append(r'C:\dev')
import some_module # noqa
Что noqaзначит в Python? Это специфично только для Python?
Ответы:
Добавление # noqaв строку означает, что линтер (программа, которая автоматически проверяет качество кода) не должен проверять эту строку. Любые предупреждения, которые мог сгенерировать код, будут игнорироваться.
Эта строка может иметь что-то, что «выглядит плохо» для линтера, но разработчик понимает и намеревается сделать это по какой-то причине.
Для получения дополнительной информации см. Документацию Flake8 по выбору и игнорированию нарушений .
// jshint ignore:line( jshint.com/docs )
# noqa. Или конкретная форма, # noinspection PyUnresolvedReferencesнапример.
# noqa F0001?
# nopep8также можно использовать, что немного яснее, imo.
Обычно это программируется в Python, чтобы игнорировать предупреждения PEP8 .
Проще говоря, строки с #noqa в конце будут игнорироваться программами linter и не будут выдавать никаких предупреждений.
Знаешь что? Даже Гвидо ван Россум (создатель Python) задавал этот вопрос раньше : D
Раньше это был «nopep8», но когда Flake8 и Pep8 хотели получить общий квалификатор, @florentx предложил «NoQA», как в «No Quality Assurance» (iirc), и он застрял.
Некоторые основные обычаи из# noqa (с flake8 ):
# flake8: noqa: файлы , содержащие эту строку , пропускаются# noqaкомментарий в конце : не будут выдавать предупреждения# noqa: <error>например, # noqa: E234 в конце : игнорировать конкретные ошибки в строке
noqaскорее всего означаетno quality assurance. Это говорит программному обеспечению анализа кода, чтобы игнорировать предупреждения.