说我有这样一个python Enum
类:
from enum import Enum
class Mood(Enum):
red = 0
green = 1
blue = 2
是否有一种自然的方式来获取Mood
中的项目总数? (例如,无需迭代它,或添加额外的n
项,或额外的n
classproperty
,等。)
enum
模块是否提供了这样的功能?
答案 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))
吗?