是否有专门的方法来获取python“Enum”中的项目数量?

时间:2015-12-26 10:45:35

标签: python python-3.x enums

说我有这样一个python Enum类:

from enum import Enum

class Mood(Enum):
    red = 0
    green = 1
    blue = 2

是否有一种自然的方式来获取Mood中的项目总数? (例如,无需迭代它,或添加额外的n项,或额外的n classproperty。)

enum模块是否提供了这样的功能?

2 个答案:

答案 0 :(得分:18)

是。 Enum有几个额外的能力,正常的类没有:

class Example(Enum):
    this = 1
    that = 2
    dupe = 1
    those = 3

print(len(Example))  # duplicates are not counted
# 3

print(list(Example))
# [<Example.this: 1>, <Example.that: 2>, <Example.those: 3>]

print(Example['this'])
# Example.this

print(Example['dupe'])
# Example.this

print(Example(1))
# Example.this

答案 1 :(得分:8)

你试过print(len(Mood))吗?