使用新的枚举特性(通过 backport enum34)与 python 2.7.6。
给定以下定义,如何将 int 转换为相应的枚举值?
给定以下定义,如何将 int 转换为相应的枚举值?
from enum import Enum
class Fruit(Enum):
Apple = 4
Orange = 5
Pear = 6
我知道我可以手动编写一系列if语句来进行转换,但是是否有一种简单的Python方式来进行转换?基本上,我想要一个函数ConvertIntToFruit(int),它返回一个枚举值。
我的用例是,我有一个记录的csv文件,我正在将每个记录读入对象中。其中一个文件字段是表示枚举的整数字段。当我填充对象时,我想将文件中的整数字段转换为对象中相应的枚举值。
Fruit['Orange']
。 - Martijn Pietersconvert
、coerce
和cast
,但没有找到任何结果。看起来魔法是“通过名称访问枚举成员,使用项访问”。非常完美,非常感谢,我将使用这种语法来清理我的代码。 - jxramos"foobar" in Fruit.__members__
这样的东西来测试成员资格,甚至可以使用Fruit.get('foobar', Fruit.Orange)
来获取默认的枚举口味。我的代码看起来更简化了,删除了我之前放置的所有这些附属查找脚手架。 - jxramos