跳到内容

too-many-positional-arguments (PLR0917)

源自 Pylint 代码检查工具。

此规则不稳定且处于预览状态。使用需要 --preview 标志。

作用

检查包含过多位置参数的函数定义。

默认情况下,此规则允许最多五个参数,可以通过 lint.pylint.max-positional-args 选项进行配置。

为什么这不好?

具有许多参数的函数更难理解、维护和调用。 对于具有许多位置参数的函数尤其如此,因为按位置提供参数比按名称提供参数更容易出错,并且对读者来说也不够清晰。

考虑将具有许多参数的函数重构为具有较少参数的较小函数,使用对象对相关参数进行分组,或迁移到 仅关键字参数

示例

def plot(x, y, z, color, mark, add_trendline): ...


plot(1, 2, 3, "r", "*", True)

建议改为

def plot(x, y, z, *, color, mark, add_trendline): ...


plot(1, 2, 3, color="r", mark="*", add_trendline=True)

Options (选项)