如何在python中获取枚举元素的名称? [英] How to get back name of the enum element in python?
本文介绍了如何在python中获取枚举元素的名称?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个这样定义的枚举:
I have an enum defined like this:
def enum(**enums):
return type('Enum', (), enums)
Status = enum(
STATUS_OK=0,
STATUS_ERR_NULL_POINTER=1,
STATUS_ERR_INVALID_PARAMETER=2)
我有一个返回状态为 Status
枚举的函数。
如何获得枚举值的名称,而不仅仅是值?
I have a function that returns status as Status
enum.
How can I get the name of the enum value, and not just value?
>>> cur_status = get_Status()
>>> print(cur_status)
1
我想获得 STATUS_ERR_NULL_POINTER
,而不是 1
推荐答案
您d必须遍历类属性以找到匹配的名称:
You'd have to loop through the class attributes to find the matching name:
name = next(name for name, value in vars(Status).items() if value == 1)
生成器表达式遍历属性和它们的值(取自 vars()生成的字典中
函数),然后返回与值 1
匹配的第一个。
The generator expression loops over the attributes and their values (taken from the dictionary produced by the vars()
function) then returns the first one that matches the value 1
.
枚举
库,可在Python 3.4中使用,也可以作为向后移植到早期版本:
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中获取枚举元素的名称?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文