什么是';#noqa&x27;在Python注释中是什么意思?
在搜索Python项目时,我发现有几行用什么是';#noqa&x27;在Python注释中是什么意思?,python,comments,terminology,code-analysis,pep8,Python,Comments,Terminology,Code Analysis,Pep8,在搜索Python项目时,我发现有几行用#noqa注释 import sys sys.path.append(r'C:\dev') import some_module # noqa 在Python中,noqa是什么意思?它只针对Python吗?将#noqa添加到一行表示linter(自动检查代码质量的程序)不应检查这一行。代码可能生成的任何警告都将被忽略 这一行可能有一些“看起来很糟糕”的东西,但开发人员理解并打算出于某种原因把它放在那里 有关更多信息,请参阅。noqa=NO-QA(无质
#noqa
注释
import sys
sys.path.append(r'C:\dev')
import some_module # noqa
在Python中,noqa
是什么意思?它只针对Python吗?将#noqa
添加到一行表示linter(自动检查代码质量的程序)不应检查这一行。代码可能生成的任何警告都将被忽略
这一行可能有一些“看起来很糟糕”的东西,但开发人员理解并打算出于某种原因把它放在那里
有关更多信息,请参阅。noqa=NO-QA(无质量保证)
在Python编程中,通常会忽略警告
简单地说,末尾有#noqa的行将被linter程序忽略,它们不会发出任何警告。你知道吗?甚至Guido van Rossum(Python的创建者):D : 它曾经是“nopep8”,但当Flake 8和Pep8想要一个普通的 florentx的鉴定人建议“无质量保证”中的“NoQA” (iirc)它卡住了 (附文):
:跳过包含此行的文件#flake 8:noqa
- 结尾包含
注释的行:不会发出警告#noqa
,例如,结尾处的#noqa:
:忽略行中的特定错误#noqa:E234
- 可以给出多个错误代码,用逗号分隔
- 代码列表前的冒号是必需的
是从先前版本中使用的#noqa
语法演变而来的 第8页的发布#nopep8
由ide支持,比如PyCharm,用于其 内置代码检查工具#noqa
可以用作预提交指令,例如在新 提交必须完成的检查流程#noqa
可用于忽略所有警告或给定的特定警告 忽视。例如,#noqa
将忽略未使用的 导入模块警告#noqa:F401
- 是在我正在使用的一个库中找到一条#noqa指令后来到这里的。由于从未听说过,我在谷歌上搜索后自然而然地来到了这里。这里提供的答案是足够的,但我想为那些可能好奇的人提供一些进一步的阐述(我当然是)
作为一个例子,考虑下面的代码:
import os
print("Hello, world!")
此代码导入os
模块,但不使用它。如果想要使用#noqa
工具来抑制PEP8警告,可以这样编写:
import os # noqa
print("Hello, world!")
这将忽略所有警告。但是,如果只想忽略特定警告(PEP8 F401已导入但未使用),可以这样做:
import os # noqa: F401
print("Hello, world!")
我已经发表了一篇文章,对以上几点进行了详细阐述。对于python linter,通常是这样的说法,但是对于其他linter,它可能会有所不同,即javascript w/jshint是:
//jshint ignore:line
()它也可以在PyCharm中工作。缩写形式的通用#noqa
。或者长格式特定的#noinspection pyunsolvedReferences
。请注意,对于pycodestyle/pep8#nopep8
,也可以使用,这一点更清楚一些。noqa最有可能代表无质量保证。它告诉代码分析软件忽略警告。相关:在我的头脑中,它总是读作“没有问题”,这绝对是最好的答案!学术性、历史性、实用性、简单性。