如何让 pylint 只计算没有默认值的参数?

How to make pylint count only arguments without a default value?

默认情况下,如果方法的参数超过 5 个,pylint 会失败 (returns errorcode>0)。

def my_func(a, b, c, d, e, f, g)

因此会失败。 我想保留这种行为,但允许传递默认值的函数,如

def my_func2(a, b, c, d=None, e='yes', f=1.0, g=None, h=True, i=10)

不要失败。

换句话说,我希望pylint只计算没有默认值的参数。 这可以做到吗?如何?参数有正则表达式吗?

注意:提高max-args在这方面没有帮助,因为my_func2实际上比my-func

接收更多的参数

经过几天的尝试,我找到了一个解决方法。

可以针对特定代码块的特定行禁用特定的 pylint 检查, 如上所述 here.

因为在我的例子中有一个特定的函数,我认为可以违反 too-many-arguments 检查,我可以在函数定义后的第一行添加一个 pylint 指令来禁用检查:

def my_func2(a, b, c, d=None, e='yes', f=1.0, g=None, h=True, i=10):
    # pylint: disable=too-many-arguments
    pass

这将禁用错误,并且 pylint 检查成功完成。

虽然这是我最初问题的解决方法,但我可以接受这个解决方案, 因为需要开发者主动说这是有意的 违反 pylint 准则是可以接受的。