enum模块
import enum class Letter(enum.Enum): a = 1 b = 2 c = 3 print('name:{}-{}'.format(Letter.a.name,Letter.b.name)) # name:a-b print('value:{}-{}'.format(Letter.a.value,Letter.b.value)) # value:1-2
继承enum.Enum,类的静态成员有name和value,name就是静态属性的名字,value就是静态属性的只值
迭代
import enum class Site(enum.Enum): city = '广州' province = '广东省' for k in Site: print('{:10} is {:10}'.format(k.name,k.value)) # city is 广州 # province is 广东省
循环类的属性,将属性名和属性值对应打印出来
import enum class Number(enum.IntEnum): c = 6 a = 3 b = 9 g = 8 e = 1 print(' '.join([s.name for s in sorted(Number)])) # e a c g b
根据类的属性的值来排序,输出属性名
import enum class Number(enum.Enum): a = 10 b = 5 c = 1 e = 5 g = 1 for k in Number: print('{:5} = {:5}'.format(k.name,k.value)) # a = 10 # b = 5 # c = 1
类的属性有相同的值,遍历的时候,它们都不会出现在输出中。枚举成员中第一个关联到成员值的名称是规范名称。