跳到内容

builtin-argument-shadowing (A002)

派生自 flake8-builtins linter。

作用

检查使用与内置函数相同名称的函数参数。

为什么这不好?

为参数名称重用内置名称会增加阅读和维护代码的难度,并可能导致不易察觉的错误,因为读者可能会将参数误认为内置函数,反之亦然。

可以通过 lint.flake8-builtins.ignorelist 配置选项将内置函数标记为此规则的例外。

示例

def remove_duplicates(list, list2):
    result = set()
    for value in list:
        result.add(value)
    for value in list2:
        result.add(value)
    return list(result)  # TypeError: 'list' object is not callable

建议改为

def remove_duplicates(list1, list2):
    result = set()
    for value in list1:
        result.add(value)
    for value in list2:
        result.add(value)
    return list(result)

Options (选项)

参考