파이썬 주석에서 '# noqa'는 무엇을 의미합니까?


162

파이썬 프로젝트를 검색하는 동안으로 주석 처리 된 몇 줄을 발견했습니다 # noqa.

import sys
sys.path.append(r'C:\dev')
import some_module   # noqa

noqa파이썬에서 무엇을 의미합니까? 파이썬에만 해당됩니까?


3
noqa가능성이 높습니다 no quality assurance. 코드 분석 소프트웨어에 경고를 무시하도록 지시합니다.
Stevoisiak


내 머리에 항상 "어떤 질문도하지"로 읽고
thrau

답변:


198

# noqa줄에 추가 하면 linter (코드 품질을 자동으로 확인하는 프로그램)가이 줄을 확인하지 않아야 함을 나타냅니다. 코드에서 생성 된 모든 경고는 무시됩니다.

그 라인은 린터에게 "나쁜 것처럼 보이는"것을 가질 수 있지만, 개발자는 그것이 어떤 이유로 그것이 존재하기를 이해하고 의도합니다.

자세한 내용은 위반 선택 및 무시에 대한 Flake8 설명서를 참조하십시오 .


3
파이썬 린터를 들어, 보통이 문장은 있지만 / jshint가 w는 다른 린터 것이, 즉 자바 스크립트 다를 수 있습니다 : // jshint ignore:line( jshint.com/docs )
jimf가

7
PyCharm에서도 작동합니다. 짧은 형식 generic # noqa. 또는 # noinspection PyUnresolvedReferences예를 들어 긴 양식 입니다.
Bob Stein

어때요 # noqa F0001?
youkaichao

5
pycodestyle / pep8의 # nopep8경우 좀 더 명확한 imo를 사용할 수 있습니다.
OozeMeister

53

noqa = NO-QA (NO 품질 보증)

PEP8 경고 를 무시하기 위해 일반적으로 파이썬 프로그래밍에서 참조됩니다 .

간단히 말해서, 끝에 #noqa가있는 행은 linter 프로그램에 의해 무시되며 경고를 발생시키지 않습니다.


15

그거 알아? 귀도 반 로섬 (파이썬의 제작자)조차도이 질문을하기 전에 물었습니다 .

A는 비트 어원을# noqa :

예전에는 "nopep8"이었지만 Flake8과 Pep8이 공통 한정자를 원할 때 @florentx는 "No Quality Assurance"(iirc)에서와 같이 "NoQA"를 제안했으며 중단되었습니다.

# noqa( flake8 사용)일부 기본 사용법 :

  • # flake8: noqa: 이 줄 이 포함 된 파일 을 건너 뜁니다
  • 끝에# noqa 주석 이 포함 된 : 경고를 발행하지 않습니다
  • # noqa: <error>예를 들어, # noqa: E234 끝에 : 라인의 특정 오류 무시
    • 쉼표로 구분하여 여러 오류 코드를 제공 할 수 있습니다.
    • 코드 목록 앞의 콜론
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.