gpt4 book ai didi

python - 如果枚举中存在值,则返回 True;如果不是,则返回 false

转载 作者:行者123 更新时间:2023-12-03 19:40:35 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to test if an Enum member with a certain name exists?

(5 个回答)


9 个月前关闭。




如果我遗漏了任何明显的内容,我深表歉意;有没有办法查看一个值是否在枚举中,如果是,则返回 True,否则返回 False?例如,如果我从 python 文档中获取以下枚举,

from enum import Enum
class Colour(Enum):
RED = 1
GREEN = 2
BLUE = 3
有什么方法可以执行以下操作或等效操作,而不会引发异常:
colour_test = "YELLOW"
if Colour[colour_test]:
print("In enum")
else:
print("Not in enum")
## Output wanted - "Not in enum"
## Actual output - KeyError: "YELLOW"
我知道我可以使用 try;except 语句,但我不想在这种情况下使用它,因为我想将这个条件与其他语句一起使用。

最佳答案

枚举有一个 __members__你可以检查的字典:

if colour_test in Colour.__members__:
print("In enum")
else:
print("Not in enum")
您也可以使用 hasattr 的通用方法。 ,但是对于一些非成员(如 "__new__"),这会返回错误的结果。 :
if hasattr(Colour, colour_test):
print("In enum")
else:
print("Not in enum")

关于python - 如果枚举中存在值,则返回 True;如果不是,则返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65531537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com