如何让 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 准则是可以接受的。
默认情况下,如果方法的参数超过 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 准则是可以接受的。