栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在不使用try / catch的情况下测试Python枚举中是否存在int值?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在不使用try / catch的情况下测试Python枚举中是否存在int值?

测试价值

变体1

请注意,其中

Enum
有一个名为的成员
_value2member_map_
(未记录,在将来的python版本中可能会更改/删除):

print(Fruit._value2member_map_)# {4: <Fruit.Apple: 4>, 5: <Fruit.Orange: 5>, 6: <Fruit.Pear: 6>}

您可以

Enum
根据此地图测试您的值是否在其中:

5 in Fruit._value2member_map_  # True7 in Fruit._value2member_map_  # False

变体2

如果您不想依赖此功能,则可以选择以下方法:

values = [item.value for item in Fruit]  # [4, 5, 6]

或(可能更好):使用

set
; 该
in
运营商将更加有效:

values = set(item.value for item in Fruit)  # {4, 5, 6}

然后用

5 in values  # True7 in values  # False

添加
has_value
到您的课程

然后可以将其作为方法添加到您的类中:

class Fruit(Enum):    Apple = 4    Orange = 5    Pear = 6    @classmethod    def has_value(cls, value):        return value in cls._value2member_map_print(Fruit.has_value(5))  # Trueprint(Fruit.has_value(7))  # False

测试钥匙

如果您想测试名称(而不是值),我将使用

_member_names_

'Apple' in Fruit._member_names_  # True'Mango' in Fruit._member_names_  # False


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/659554.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号