Pythonのコメントで「#noqa」はどういう意味ですか?


162

Pythonプロジェクトを検索していると、でコメントされた数行が見つかりました# noqa

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

noqaPythonで何を意味しますか?Pythonのみに固有ですか?


3
noqaおそらくの略ですno quality assurance。コード分​​析ソフトウェアに警告を無視するように指示します。
Stevoisiak


私の頭では常に「質問はされません」と読みます
thrau

回答:


198

# noqa行に追加すると、リンター(コード品質を自動的にチェックするプログラム)がこの行をチェックしないことを示します。コードが生成した可能性のある警告は無視されます。

その行には、リンターにとって「見た目が悪い」ものがあるかもしれませんが、開発者はそれを理解し、何らかの理由でそこにあると考えています。

詳細については、違反の選択と無視に関するFlake8のドキュメントを参照してください。


3
Pythonのリンターのために、それは通常、この文であるが、他のリンターのためにそれが異なる可能性があり、すなわちジャバスクリプトワット/ jshintである:// jshint ignore:linejshint.com/docs
jimf

7
PyCharmでも動作します。ジェネリックの短縮形# noqa。または# noinspection PyUnresolvedReferences例えば特定の長い形式。
ボブスタイン

いかが# noqa F0001ですか?
youkaichao

5
pycodestyle / pep8 # nopep8についても使用できることに注意してください。
OozeMeister

53

noqa = NO-QA(品質保証なし)

一般に、Pythonプログラミングでは、PEP8警告を無視すると呼ばれてます。

簡単に言うと、末尾に#noqaがある行は、リンタープログラムによって無視され、警告は出されません。


15

あのね?Guido van Rossum(Pythonの作成者)でさえ、前にこの質問をしました:D

少し語源# 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.