答案 0 :(得分:10)
Pylint对可变类型的默认参数值有警告。它是可定制的,所以如果你愿意的话,你可以做到这一点。
答案 1 :(得分:3)
grep有什么问题?
grep "^\s*def.*=(\[\]|\{\}|set\(\))"
这将找到所有常见的罪魁祸首。
如果您使用自己的一个可变类的实例作为默认值,则必须单独检查它。
答案 2 :(得分:0)
@ S.Lott提出的正则表达式也在查找函数/方法调用,但是我们只想查找函数/方法定义。
因此,这是正则表达式的更新版本,用于查找使用可变默认参数的所有函数/方法签名的位置:
def .+?\([^:]*?(=\[\]|=\{\}|set\(\))[^:]*?\):
注意:
如果您使用的是PyCharm,它将为这些参数添加淡黄色背景,并帮助您更改代码。
享受!