assignment-in-assert (RUF018)
作用
检查 assert
语句中命名的赋值表达式(例如,x := 0
)。
为什么这不好?
命名的赋值表达式(也称为“海象运算符”)用于在更大的表达式中将值赋给变量。
命名的赋值在 assert
语句中是语法上有效的。但是,当 Python 解释器在 -O
标志下运行时,assert
语句不会被执行。在这种情况下,命名的赋值也会被忽略,这可能会导致意外的行为(例如,未定义的变量访问)。
示例
建议改为
该规则避免标记那些仅从 assert
语句内部引用的变量的命名表达式;以下情况不会触发该规则
这个也不会触发