枚举类型的使用?

PEP435 标准已经把枚举添加到 Python3.4 版本,在 PyPi 中也可以向后支持,通过:

pip install enum34

如果下载 enum 没有数字将会是另一个版本

from enum import Enum
animal = Enum("Animal", "ant bee cat dog")

等价于:

class Animals(Enum):
    ant = 1
    bee = 2
    cat = 3
    dog = 4

在更早以前,有这些方法:

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

>>> Numbers = enum(ONE=1, TWO=2, THREE='three')
>>> Numbers.ONE
1
>>> Numbers.TWO
2
>>> Numbers.THREE
'three'

或者

把值转换为名字:

这样会覆盖名字下的所有东西,但是对于枚举的输出很有用。如果转换的值不存在就会抛出 KeyError 异常

Last updated

Was this helpful?