Python flake8-忽略函数的警告
我试图忽略警告Python flake8-忽略函数的警告,python,flake8,Python,Flake8,我试图忽略警告C901,因为它太复杂了,仅用于单个函数。我尝试了几乎所有的#noqa:C901排列,但仍然出现了错误。我认为函数(方法?)上方的#noqa注释就足够了。我甚至尝试将注释与def声明放在同一行,如下所示: class Klass(): def my_complex_method(self): # noqa: C901 """ lots of if's and return's """ 下面是我从flake8收到的消息示例
C901,因为它太复杂了
,仅用于单个函数。我尝试了几乎所有的#noqa:C901
排列,但仍然出现了错误。我认为函数(方法?)上方的#noqa
注释就足够了。我甚至尝试将注释与def
声明放在同一行,如下所示:
class Klass():
def my_complex_method(self): # noqa: C901
"""
lots of if's and return's
"""
下面是我从flake8
收到的消息示例:
src/test/_resource.py:147:5: C901 'Resource.render' is too complex (22)
def render(self, request): # noqa: C901
^
快速搜索只会生成如何全局忽略或忽略整个文件。这不是我想要的,因为如果文件太复杂,我确实希望捕获文件中的其他函数。有人知道我如何解决我的问题吗?来自上的文档(由发动机罩下的flake8
使用):
要使mccabe报告的违规行为保持沉默,请将您的#noqa:C901
在函数定义行上,报告错误的位置
(可能是装修工)
因此,您应该将
#noqa
注释放在包含def
的行上,或者放在带有装饰器的行上。在搜索其他错误时,对我有效的方法是将其前缀放在flake8
上
所以我猜:
#flake 8:noqa:C901
def somefn(…):。。。
应该有效。您可以忽略特定行的错误,但您必须在抛出错误的行上添加
#noqa
注释,这可能不是def
行。@据我所知,这一切都在def
行上。我已经用一个例子更新了这个问题,我从flake8得到了什么。你的函数有装饰器吗?我通过将#noqa
注释放置在装饰器的行上而不是包含def
的行上,禁用了此函数的此警告。虽然这在技术上可行,但它似乎禁用了整个文件的所有Flake8错误。它将禁用所有错误。它应该是def somefn(…):#noqa:C901
注意:#flake 8:noqa:C901
在函数装饰行报告冲突时不起作用,因此请确保只使用#noqa:C901
。