“#noqa”在Python评论中意味着什么?

问题描述 投票:65回答:2

在搜索Python项目时,我发现了一些用# noqa评论的行。

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

noqa在Python中意味着什么?它只针对Python吗?

python terminology code-analysis
2个回答
110
投票

# noqa添加到一行表示linter(一个自动检查代码质量的程序)不应该检查此行。代码可能生成的任何警告都将被忽略。

这条线可能有一些“看起来很糟糕”的东西,但开发商理解并打算出于某种原因它在那里。

有关更多信息,请参阅Flake8 documentation for Selecting and Ignoring Violations


30
投票

noqa = NO-QA (NO Quality Assurance)

它在Python编程中通常被称为忽略PEP8警告。

简单来说,linter程序将忽略末尾有#noqa的行,它们不会引发任何警告。


2
投票

你知道吗?甚至Guido van Rossum(Python的创造者)asked this question before:D

A bit Etymology of # noqa

它曾经是“nopep8”但是当Flake8和Pep8想要一个普通的资格赛时@florentx建议“无质量保证”(iirc)中的“NoQA”并且它被卡住了。

Some basic usages of # noqa(与flake8):

  • # flake8: noqa:跳过包含此行的文件
  • 最后包含# noqa评论的行:不会发出警告
  • # noqa: <error>,例如,最后的# noqa: E234:忽略一行上的特定错误 可以给出多个错误代码,用逗号分隔 代码列表前的冒号是必需的
© www.soinside.com 2019 - 2024. All rights reserved.