在python 2.7.6中使用新的Enum功能(通过backport enum34)。
给定以下定义,如何将int转换为相应的Enum值?
from enum import Enum
class Fruit(Enum):
Apple = 4
Orange = 5
Pear = 6
我知道我可以手工制作一系列的if语句来进行转换,但是有没有简单的pythonic转换方法?基本上,我想要一个返回枚举值的函数ConvertIntToFruit(int)。
我的用例是我有一个记录的csv文件,在其中我将每个记录读入一个对象。文件字段之一是代表枚举的整数字段。在填充对象时,我想将文件中的整数字段转换为对象中对应的Enum值。
您“打电话” Enum
上课:
Fruit(5)
轮到5
为Fruit.Orange
:
>>> from enum import Enum
>>> class Fruit(Enum):
... Apple = 4
... Orange = 5
... Pear = 6
...
>>> Fruit(5)
<Fruit.Orange: 5>
从文档的程序访问到枚举成员及其属性部分:
有时,以编程方式访问枚举中的成员很有用(例如,
Color.red
由于在编写程序时尚不知道确切的颜色而无法执行此操作)。Enum
允许这样的访问:>>> Color(1) <Color.red: 1> >>> Color(3) <Color.blue: 3>
在相关注释中:要映射包含枚举成员名称的字符串值,请使用subscription:
>>> s = 'Apple'
>>> Fruit[s]
<Fruit.Apple: 4>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句