我大致有以下几点:

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类中有额外的数据,但Python似乎不喜欢这样.

我有没有做错什么,或者有没有更好的方法?我习惯于用C++枚举类.

推荐答案

经过一段时间的挖掘,我找到了一种方法来获得我想要的正确行为.首先,我不得不用Enum而不是IntEnum.其次,我必须升级到Python3.11,并使用nonmember函数来标记不可枚举的内容.

Python相关问答推荐

将整组数组拆分为最小值与最大值之和的子数组

如何删除索引过go 的lexsort深度可能会影响性能?' &>

输出中带有南的亚麻神经网络

图像 pyramid .难以创建所需的合成图像

更改键盘按钮进入'

关于Python异步编程的问题和使用await/await def关键字

我想一列Panadas的Rashrame,这是一个URL,我保存为CSV,可以直接点击

如何在Polars中从列表中的所有 struct 中 Select 字段?

Pandas Loc Select 到NaN和值列表

Django RawSQL注释字段

如何在turtle中不使用write()来绘制填充字母(例如OEG)

Python pint将1/华氏度转换为1/摄氏度°°

使用嵌套对象字段的Qdrant过滤

有没有办法让Re.Sub报告它所做的每一次替换?

504未连接IB API TWS错误—即使API连接显示已接受''

ModuleNotFoundError:Python中没有名为google的模块''

pytest、xdist和共享生成的文件依赖项

将数字数组添加到Pandas DataFrame的单元格依赖于初始化

使用元组扩展字典的产品挑战

Django-修改后的管理表单返回对象而不是文本