首页 > 解决方案 > 从 str 和 Enum 继承的注意事项是什么

问题描述

str使用继承自和的类有哪些注意事项(如果有)Enum

这被列为解决将 枚举成员序列化为 JSON问题的一种可能方法

from enum import Enum

class LogLevel(str, Enum):
    DEBUG = 'DEBUG'
    INFO = 'INFO'

当然重点是使用这个类作为一个枚举,具有它的所有优点

标签: pythonpython-3.xenumsmultiple-inheritance

解决方案


str或任何其他类型继承时,生成的枚举成员也是该类型。这表示:

  • 他们拥有该类型的所有方法
  • 它们可以用作那种类型
  • 而且,最重要的是,它们将与该类型的其他实例进行比较

最后一点是最重要的:因为LogLevel.DEBUGis astr它将与其他字符串进行比较——这很好——但也会与其他str基于- 的Enums 进行比较——这可能是坏的。

文档中有关子类化枚举的信息


推荐阅读