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)