📅  最后修改于: 2023-12-03 15:08:56.674000             🧑  作者: Mango
枚举(Enum)是一种将常量值赋予有意义的名字的类型,它可以让代码更加清晰、更易读。Python3 中引入了 enum 模块,可以更好地支持枚举。
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
可以使用条件语句来定义枚举。
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
if sometest():
YELLOW = 4
else:
PINK = 5
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
ALIAS = 3
from enum import IntEnum
class Color(IntEnum):
RED = 1
GREEN = 2
BLUE = 3
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
print(Color.RED)
print(repr(Color.RED))
print(str(Color.RED))
print(type(Color.RED))
输出:
Color.RED
<Color.RED: 1>
Color.RED
<enum 'Color'>
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
print(Color.RED.value)
输出:
1
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
print(Color.RED.name)
输出:
RED
from enum import Enum
class Color(Enum):
RED = {'value': 1, 'desc': 'red color'}
GREEN = {'value': 2, 'desc': 'green color'}
BLUE = {'value': 3, 'desc': 'blue color'}
print(Color.RED.value)
print(Color.RED.desc)
输出:
{'value': 1, 'desc': 'red color'}
red color
可以使用 is 运算符和 == 运算符进行比较。
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
print(Color.RED is Color.RED)
print(Color.RED == Color(1))
输出:
True
True
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
for color in Color:
print(color.name)
输出:
RED
GREEN
BLUE
枚举可以起到标记作用,提高代码可读性和可维护性,Python 3 中可以使用 enum 模块更好地支持枚举。