Ish*_*eet 107 python comments code-analysis terminology pep8
在搜索Python项目时,我发现了几行注释# noqa.
import sys
sys.path.append(r'C:\dev')
import some_module # noqa
Run Code Online (Sandbox Code Playgroud)
noqaPython的意思是什么?它只针对Python吗?
jim*_*imf 139
添加# noqa到行表示linter(自动检查代码质量的程序)不应检查此行.代码可能生成的任何警告都将被忽略.
那条线可能有一些"看起来很糟糕"的东西,但开发商理解并打算出于某种原因它在那里.
有关更多信息,请参阅Flake8文档以了解选择和忽略违规.
YaO*_*OzI 46
你知道吗?甚至 Guido van Rossum(Python 的创造者)之前也问过这个问题:D
它曾经是“nopep8”,但是当 Flake8 和 Pep8 想要一个共同的限定符时,@florentx 在“No Quality Assurance”(iirc)中建议使用“NoQA”并且它卡住了。
# flake8: noqa:跳过包含这一行的文件# noqa注释的行:不会发出警告# noqa: <error>,例如,# noqa: E234 最后:忽略一行中的
特定错误在我正在使用的库中找到 # noqa 指令后来到这里。没听说过,自然是在谷歌上搜索到了这里。这里提供的答案是足够的,但我想为那些可能好奇的人提供一些进一步的阐述(我当然是)
# noqa已经从# nopep8之前的 flake8 版本中使用的语法演变而来
# noqa IDE 支持,例如 PyCharm,可与它们的内置代码检查工具一起使用。
# noqa 可以用作预提交指令,以便在新提交之前必须完成检查过程
# noqa可用于忽略所有警告或给出要忽略的特定警告。例如,# noqa: F401将忽略未使用的导入模块警告。
例如,请考虑以下代码:
import os
print("Hello, world!")
Run Code Online (Sandbox Code Playgroud)
此代码导入os模块但不使用它。如果想使用该# noqa工具来抑制 PEP8 警告,可以这样写:
import os # noqa
print("Hello, world!")
Run Code Online (Sandbox Code Playgroud)
这将忽略所有警告。但是,如果只想忽略特定警告(导入但未使用 PEP8 F401),则可以这样做:
import os # noqa: F401
print("Hello, world!")
Run Code Online (Sandbox Code Playgroud)
我发表了一篇文章,其中包含一些noqa 示例以及对上述要点的更多阐述。
| 归档时间: |
|
| 查看次数: |
22246 次 |
| 最近记录: |