Python 获取 Enum 中的元素个数的方法

使用 len() 函数获取枚举中的元素数,例如 len(Color)。 len() 函数返回对象的长度(项目数),可以直接传递一个枚举。

from enum import Enum


class Color(Enum):
    RED = 1
    GREEN = 2
    YELLOW = 3


print(len(Color))

上面代码示例的运行结果为 3

Python 获取 Enum 中的元素个数的方法

函数采用的参数可以是序列(字符串、元组、列表、范围或字节)或集合(字典、集合或冻结集合)。

len() 函数返回对象的长度(元素个数)。

from enum import Enum


class Color(Enum):
    RED = 1
    GREEN = 2
    YELLOW = 3
    PURPLE = 1  # ?️ duplicate value


print(len(Color))  # ?️ 3

请注意,名称为 PURPLE 的成员的值 1 已包含在枚举中,因此 len() 函数会跳过它。

枚举支持迭代,因此我们可以使用列表推导来获取所有枚举名称或值的列表。

from enum import Enum


class Color(Enum):
    RED = 1
    GREEN = 2
    YELLOW = 3


names = [member.name for member in Color]
print(names) # ['RED', 'GREEN', 'YELLOW']

values = [member.value for member in Color]
print(values) # [1, 2, 3]

如果需要遍历枚举,也可以使用简单的 for 循环。

from enum import Enum


class Color(Enum):
    RED = 1
    GREEN = 2
    YELLOW = 3


for color in Color:
    print(color)
    print(color.name, color.value)