web-dev-qa-db-ja.com

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

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

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

Pythonでnoqaはどういう意味ですか? Pythonのみに固有ですか?

87
Ishpreet

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

その行には、リンターにとって「見た目が悪い」ものが含まれている可能性がありますが、開発者は何らかの理由でそこにあることを理解し、意図しています。

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

114
jimf

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

通常、Pythonプログラミングでは PEP8 警告を無視するように呼ばれています。

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

30

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

Aビット# noqaのエチモロジー

以前は "nopep8"でしたが、Flake8とPep8が共通の修飾子を必要とする場合、@ florentxは "No Quality Assurance"(iirc)のように "NoQA"を提案しました。

一部の基本usagesof # noqa (with flake8 ):

  • # flake8: noqaこの行を含むfilesはスキップされます
  • # noqaコメントを含む最後に:警告を発行しません
  • # noqa: <error>、例:# noqa: E234終了時:無視特定のエラー行上
    • 複数のエラーコードをコンマで区切って指定できます
    • コードのリストの前のコロン
2
YaOzI