在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。
枚举是一个被命名的整型常数的集合,枚举在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。
枚举的说明与结构和联合相似,其形式为:
enum 枚举名{ 标识符①[=整型常数], 标识符②[=整型常数], ... 标识符N[=整型常数], }枚举变量;
python用法的代码实现:
''' 1 首先,定义枚举要导入enum模块。 枚举定义用class关键字,继承Enum类。 定义枚举时,成员名称不允许重复 默认情况下,不同的成员值允许相同。但是两个相同值的成员,第二个成员的名称被视作第一个成员的别名 如果枚举中存在相同值的成员,在通过值获取枚举成员时,只能获取到第一个成员 如果要限制定义枚举时,不能定义相同值的成员。可以使用装饰器@unique【要导入unique模块】 ''' from enum import Enum class Color(Enum): red = 1 orange = 2 yellow = 3 green = 4 bule = 5 indigo = 6 purple = 7 kumata = 1 ''' 2 ''' #通过成员值来获取成员 print(Color(7)) #Color.purple #通过成员名称获取成员 print(Color['red']) #Color.red #通过成员获取他的名称和值 red_member = Color.red print(red_member.name) #red print(red_member.value) #1 ''' 3 迭代器 枚举支持迭代器,可以遍历枚举成员 如果枚举有值重复的成员,循环遍历枚举时只获取值重复成员的第一个成员 如果想把值重复的成员也遍历出来,要用枚举的一个特殊属性__members__ ''' for color in Color: print(color) '''输出 Color.red Color.orange Color.yellow Color.green Color.bule Color.indigo Color.purple ''' for color in Color.__members__.items(): print(color) '''输出 ('red', <Color.red: 1>) ('orange', <Color.orange: 2>) ('yellow', <Color.yellow: 3>) ('green', <Color.green: 4>) ('bule', <Color.bule: 5>) ('indigo', <Color.indigo: 6>) ('purple', <Color.purple: 7>) ('kumata', <Color.red: 1>) '''
笔记参考:Python枚举