gpt4 book ai didi

python - 如何取回枚举元素的名称?

转载 作者:IT老高 更新时间:2023-10-28 20:47:18 26 4
gpt4 key购买 nike

我有一个这样定义的枚举:

def enum(**enums):
return type('Enum', (), enums)

Status = enum(
STATUS_OK=0,
STATUS_ERR_NULL_POINTER=1,
STATUS_ERR_INVALID_PARAMETER=2)

我有一个以 Status 枚举形式返回状态的函数。如何获取枚举值的名称,而不仅仅是值?

>>> cur_status = get_Status()
>>> print(cur_status)
1

我想获得 STATUS_ERR_NULL_POINTER,而不是 1

最佳答案

您必须遍历类属性才能找到匹配的名称:

name = next(name for name, value in vars(Status).items() if value == 1)

生成器表达式循环遍历属性及其值(取自 vars() function 生成的字典),然后返回与值 1 匹配的第一个。

enum library 更好地模拟枚举, 在 Python 3.4 中可用或作为 backport for earlier versions :

from enum import Enum

class Status(Enum):
STATUS_OK = 0
STATUS_ERR_NULL_POINTER = 1
STATUS_ERR_INVALID_PARAMETER = 2

允许您访问名称和值:

name = Status(1).name  # gives 'STATUS_ERR_NULL_POINTER'
value = Status.STATUS_ERR_NULL_POINTER.value # gives 1

关于python - 如何取回枚举元素的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29880323/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com