При поиске в проекте 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
. Это говорит программному обеспечению анализа кода, чтобы игнорировать предупреждения.