一、枚举类的定义
要定义一个枚举类,需要导入 enum
模块并继承 enum.Enum
类。
- 枚举类用于表示一组命名的常量,提升代码的可读性和可维护性。
- 可以通过名称和值访问枚举成员,并且可以迭代枚举类的所有成员。
- 枚举类可以与自动值、混合类型和方法结合使用,以增强其实用性。
二、枚举类的样例使用
from enum import Enum, auto
class OrderStatus(Enum):
PENDING = auto()
PROCESSING = auto()
SHIPPED = auto()
DELIVERED = auto()
def update_order_status(order_id: int, status: OrderStatus):
# 模拟更新订单状态的函数
print(f"Order {order_id} status updated to {status.name}")
def check_order_status(order_id: int) -> OrderStatus:
# 模拟检查订单状态的函数,假设所有订单都是 SHIPPED 状态
return OrderStatus.SHIPPED
# 示例使用
order_id = 123
status = check_order_status(order_id)
print(f"Order {order_id} current status: {status.name}")
update_order_status(order_id, OrderStatus.DELIVERED)
三、枚举类的其他高级用法
可以将枚举与其他类型结合使用,例如将枚举与字符串、整数混合使用:
from enum import Enum
class MixedEnum(Enum):
STRING = "string_value"
INTEGER = 1
FLOAT = 1.0
print(MixedEnum.STRING.value) # 输出: string_value
print(MixedEnum.INTEGER.value) # 输出: 1
print(MixedEnum.FLOAT.value) # 输出: 1.0
可以在枚举类中定义方法:
from enum import Enum
class Shape(Enum):
CIRCLE = 1
SQUARE = 2
TRIANGLE = 3
def describe(self):
return f"This is a {self.name.lower()}."
# 示例使用
shape = Shape.CIRCLE
print(shape.describe()) # 输出: This is a circle.