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 行为的代码引入行为更改。