在实际的应用中,你可以将Enum和状态图结合使用,来定义状态及其转换逻辑。以下是一个结合状态图的简单示例: classOrderStatus(Enum):PENDING=1APPROVED=2REJECTED=3defchange_status(current_status,action):ifcurrent_status==OrderStatus.PENDING:ifaction=='approve':returnOrderStatus.APPROVEDelifaction=='reject':retu...
fromenumimportEnumclassColor(Enum):RED=1GREEN=2BLUE=3defget_label(value):forcolorinColor:ifcolor.value==value:returncolor.namereturnNonedefget_value(label):try:returnColor[label].valueexceptKeyError:returnNone# 测试代码if__name__=="__main__":print(get_label(1))# 输出: REDprint(get_value("...
importenumclassTest(enum.Enum):A=1B=2test_dict={}foriinTest:test_dict[i]='value.'+str(i)print(test_dict)# 输出结果为 {<Test.A: 1>: 'value.Test.A', <Test.B: 2>: 'value.Test.B'}print(test_dict[Test.A])# 输出结果为 value.Test.A 前文提到枚举成员的名称是唯一的,但枚举成员...
默认属性name和value fromenumimportEnumclassWeekday(Enum): monday= 1tuesday= 2wednesday= 3thirsday= 4friday= 5saturday= 6sunday= 7print(Weekday.wednesday)#Weekday.wednesdayprint(type(Weekday.wednesday))#<enum 'Weekday'>print(Weekday.wednesday.name)#wednesdayprint(Weekday.wednesday.value)#3 自...
value) # 调用类方法 print(Status.status(9)) 4. enum模块详解 enum模块一共就一个元类(EnumMeta),四个类(Enum, IntEnum, Flag, IntFlag, auto),一个装饰器(unique),他们大致关系如下 enum模块 关于元类,可以参见【Python】什么是元类(metaclass)? 关于装饰器,可以参见【Python】装饰器到底怎么用? 4.1 ...
枚举类的一个枚举有name(标签)和value(枚举值)两个属性,使用枚举值时,务必通过value获取枚举值。 2. Enum使用示例 importenum classColorCode(enum.Enum): RED =1 BLUE =2 BLACK =3 defprint_color(color_code): ifcolor_code == ColorCode.RED.value: ...
return descriptions[self.value] 我们不再需要单独管理描述,而是可以直接访问它们: print(Status.PENDING.description) # Output: The request is pending approval. print(Status.APPROVED.description) # Output: The request has been approved. 这将使enum更丰富和 self-contained。
class Color(Enum): RED = 2 GREEN = 4 BLUE = 6 注意点: 1. 枚举值可以是任何类型,如果值不重要可以使用auto()自动选择。但在有其他已定义的值的情况下,谨慎与auto混用 2. Color是枚举类,Color.RED等是枚举成员,枚举成员拥有name和value属性
enum_iterate.py import enumclass BugStatus(enum.Enum): new = 7 incomplete = 6 invalid = 5 wont_fix = 4 in_progress = 3 fix_committed = 2 fix_released = 1for status in BugStatus: print('{:15} = {}'.format(status.name, status.value))成员按照在类定义中声明的顺序生成。名称和值不...
Enum 允许这样的访问: >>> >>> Color(1) <Color.RED: 1> >>> Color(3) <Color.BLUE: 3> 如果你希望通过 name 来访问枚举成员,可使用条目访问: >>> >>> Color['RED'] <Color.RED: 1> >>> Color['GREEN'] <Color.GREEN: 2> 如果你有一个枚举成员并且需要它的 name 或value: >>> >...