跳到内容

set-attr-with-constant (B010)

源自 flake8-bugbear linter。

修复总是可用的。

作用

检查使用了 setattr 函数,并将常量属性值作为参数的情况(例如,setattr(obj, "foo", 42))。

为什么这不好?

setattr 用于动态设置属性。如果该属性被定义为常量,它并不比典型的属性访问更安全。在可能的情况下,优先使用属性访问而不是 setattr 调用,因为前者更简洁和符合习惯用法。

示例

setattr(obj, "foo", 42)

建议改为

obj.foo = 42

参考