跳到内容

复杂结构 (C901)

源自 mccabe linter。

作用

检查具有高 McCabe 复杂度的函数。

为什么这不好?

函数的 McCabe 复杂度是函数控制流图复杂度的度量。它通过将函数中决策点的数量加一来计算。决策点是代码中程序可以选择两条或更多条路径的地方。

复杂度高的函数难以理解和维护。

示例

def foo(a, b, c):
    if a:
        if b:
            if c:
                return 1
            else:
                return 2
        else:
            return 3
    else:
        return 4

建议改为

def foo(a, b, c):
    if not a:
        return 4
    if not b:
        return 3
    if not c:
        return 2
    return 1

Options (选项)