我试图只忽略C901 too complex
一个函数的警告。我已经尝试了几乎所有# noqa: C901
我能看到的排列,但仍然出现错误。我会认为# noqa
函数(方法?)上面的注释就足够了。我什至尝试将评论与def
声明放在同一行,如下所示:
class Klass():
def my_complex_method(self): # noqa: C901
"""
lots of if's and return's
"""
Run Code Online (Sandbox Code Playgroud)
这是我收到的消息的示例flake8
:
src/test/_resource.py:147:5: C901 'Resource.render' is too complex (22)
def render(self, request): # noqa: C901
^
Run Code Online (Sandbox Code Playgroud)
快速搜索只产生如何忽略全局或整个文件。这不是我想要的,因为文件中的其他函数如果太复杂,我确实想捕获。有谁知道我该如何解决我的问题?
小智 10
请注意,如果您的方法不全部位于一行,则将# noqa
位于该方法的第一行,如下所示:
def my_method( # noqa: C901
self,
variable_name: str = None,
variable_int: int = None,
variable_list: list = None,
):
Run Code Online (Sandbox Code Playgroud)
最好忽略已知和可接受的复杂性,以便捕获并讨论任何未来的回归。接受 McCabe 复杂度高达 12 的方法:
def my_complex_function () # noqa: max-complexity=13
pass
Run Code Online (Sandbox Code Playgroud)
当搜索这个不同的错误时,对我有用的是把它放在前缀flake8
.
所以我猜这个:
# flake8: noqa: C901
def somefn(...): ...
Run Code Online (Sandbox Code Playgroud)
应该管用。