什么是';#noqa&x27;在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(无质

在搜索Python项目时,我发现有几行用
#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指令后来到这里的。由于从未听说过,我在谷歌上搜索后自然而然地来到了这里。这里提供的答案是足够的,但我想为那些可能好奇的人提供一些进一步的阐述(我当然是)

      • #noqa
        是从先前版本中使用的
        #nopep8
        语法演变而来的 第8页的发布

      • #noqa
        由ide支持,比如PyCharm,用于其 内置代码检查工具

      • #noqa
        可以用作预提交指令,例如在新 提交必须完成的检查流程

      • #noqa
        可用于忽略所有警告或给定的特定警告 忽视。例如,
        #noqa:F401
        将忽略未使用的 导入模块警告

      作为一个例子,考虑下面的代码:

      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最有可能代表
      无质量保证。它告诉代码分析软件忽略警告。相关:在我的头脑中,它总是读作“没有问题”,这绝对是最好的答案!学术性、历史性、实用性、简单性。