You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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) # 输出 2
    
    如果需要同时拿到FOO这个名称,可访问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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 16:24:03