跳到内容

redefined-argument-from-local (PLR1704)

源自 Pylint 代码检查工具。

作用

检查在 fortrywith 语句中定义的变量是否重新定义了函数参数。

为什么这不好?

重新定义的变量可能会因覆盖函数参数而导致意外行为。 如果声明了嵌套函数,则内部函数的主体可以覆盖外部函数的参数。

示例

def show(host_id=10.11):
    for host_id, host in [[12.13, "Venus"], [14.15, "Mars"]]:
        print(host_id, host)

建议改为

def show(host_id=10.11):
    for inner_host_id, host in [[12.13, "Venus"], [14.15, "Mars"]]:
        print(host_id, inner_host_id, host)

Options (选项)

参考