我想判断一些枚举的values set中是否存在string value个.以下是我所做的:

from enum import Enum

class Color(str, Enum):

    RED = "red"
    GREEN = "green"
    YELLOW = "yellow"

s = "red"
# s = "blue"

if any(s == c.value for c in Color):
    print(Color(s))

当我判断documentation时,我发现:

EnumMeta元类负责提供contains()、dir()、iter()和其他方法,这些方法允许我们使用在典型类上失败的枚举类,例如list(Color)或Color中的某些枚举变量

但我想要不同的东西(判断是否存在values).有没有更像Python 的方法来解决这个问题?

推荐答案

如果您不想用try-except块把代码弄得杂乱无章,可以根据_value2member_map_测试值,_value2member_map_Enum子类的dict属性,将值映射到成员类:

if s in Color._value2member_map_:
    print(Color(s))

Python相关问答推荐

在输入行运行时停止代码

ModuleNotFoundError:没有模块名为x时try 运行我的代码''

使用嵌套对象字段的Qdrant过滤

如何在一组行中找到循环?

提取数组每行的非零元素

在第一次调用时使用不同行为的re. sub的最佳方式

Seaborn散点图使用多个不同的标记而不是点

极柱内丢失类型信息""

如何从数据框列中提取特定部分并将该值填充到其他列中?

普洛特利express 发布的人口普查数据失败

对包含JSON列的DataFrame进行分组

如何在不遇到IndexError的情况下将基数10的整数转换为基数80?

GEKKO中若干参数的线性插值动态优化

检测并显示网页更改

PySpark:使用重置对窗口进行计数

如何让Pandas 数据帧变长变宽

为什么REGISTER_NEXT_STEP_HANDLER不立即调用函数并等待另一条消息

对每列给定行进行块切片

在Python中使用仿函数作为有状态回调函数

装饰符、依赖项注入和连接类型