将非整数成员值添加到 Python3 中的 IntEnum

Adding non-integer member values to IntEnum in Python3

我大致有以下几点:

class Foo(IntEnum):
  a = 0
  b = auto()
  c = auto()
  strings = ["Alpha", "Beta", "Charlie"]
  def __str__(self):
    return Foo.strings[self]

但是,这引发了:

TypeError: int() argument must be a string, a bytes-like object or a number, not 'EnumMeta'

我的 Foo class 中需要额外的数据,但 Python 似乎不喜欢那样。

我是否做错了什么,或者有更好的方法吗?我习惯在 C++ 中枚举 类。

经过相当多的挖掘,我找到了一种方法来获得我正在寻找的正确行为。首先,我必须使用 Enum 而不是 IntEnum。其次,我不得不升级到 Python3.11 并使用 nonmember 功能来标记不可枚举的东西。