在python 2.7.6中使用新的枚举特性(通过backport enum34)。
给定以下定义,如何将int转换为相应的枚举值?
from enum import Enum
class Fruit(Enum):
Apple = 4
Orange = 5
Pear = 6
我知道我可以手工制作一系列if语句来进行转换,但是有没有一种简单的python方法来转换呢?基本上,我想要一个函数ConvertIntToFruit(int),它返回一个枚举值。
我的用例是我有一个记录的csv文件,在那里我将每个记录读入一个对象。其中一个文件字段是表示枚举的整数字段。在填充对象时,我希望将文件中的整型字段转换为对象中相应的枚举值。
你“调用”了
Enum
类:要将
5
转换为Fruit.Orange
:从文档的Programmatic access to enumeration members and their attributes部分:
在相关说明中:要映射包含枚举成员的名称的字符串值,请使用subscription:
我认为简单地说就是通过调用
EnumType(int_value)
将int
值转换成Enum
,然后访问Enum
对象的name
:或作为功能:
我想要类似的东西,这样我就可以从一个引用访问值对的任何一部分。香草的版本:
失败将按预期引发异常。
更强大的版本:
如果未正确使用,这将避免创建异常,而是返回故障指示。一个更像python的方法是返回“None”,但我的特定应用程序直接使用文本。
相关问题 更多 >
编程相关推荐