enum

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

类的属性有相同的值,遍历的时候,它们都不会出现在输出中。枚举成员中第一个关联到成员值的名称是规范名称。

原文地址:https://www.cnblogs.com/st-st/p/9683521.html