Python 如何从Color.RED枚举成员访问到对应的FOO取值2?
需求实现解答
前置修正
你提供的代码存在笔误:Color枚举中引用的BOO类没有对应定义,结合你给出的Person枚举逻辑,需要先修正为如下可运行代码:
from enum import Enum class Person(Enum): FOO = 2 BAR = 3 class Color(Enum): RED = Person.FOO BLUE = Person.BAR
实现方法
该需求完全可以实现,有两种常用实现方案:
- 方案一:直接通过两层
value属性取值Color.RED的value本身是Person.FOO枚举实例,再取一次value就能拿到对应数值2:
如果需要同时拿到res = Color.RED.value.value print(res) # 输出 2FOO这个名称,可访问Color.RED.value.name。 - 方案二:定义Color时直接存储数值,简化后续取值
如果不需要保留Person枚举实例关联,可在定义Color成员时直接取Person的value,后续只需要一层value就能拿到值:class Color(Enum): RED = Person.FOO.value BLUE = Person.BAR.value res = Color.RED.value print(res) # 输出 2
内容的提问来源于stack exchange,提问作者Mr.Banks
相关产品推荐
相关产品推荐

