replace-str-enum (UP042)
源自 pyupgrade linter。
有时提供修复。
此规则不稳定且处于预览状态。使用需要 --preview 标志。
作用
检查同时继承自 str 和 enum.Enum 的类。
为什么这不好?
Python 3.11 引入了 enum.StrEnum,它比同时继承 str 和 enum.Enum 更受推荐。
示例
建议改为
修复安全性
Python 3.11 为同时继承 str 和 enum.Enum 的枚举引入了一个重大变更。考虑以下枚举
在 Python 3.11 中,Foo.BAR 的格式化表示形式发生了如下变化
从 str 和 enum.Enum 迁移到 enum.StrEnum 将恢复之前的行为,例如
因此,迁移到 enum.StrEnum 将为依赖于 Python 3.11 行为的代码引入行为更改。