Python 检查值是否在枚举中失败

问题描述 投票:0回答:1

我非常困惑这两者是如何工作的。有人可以帮助我理解发生了什么事以及为什么它打印“BAD”和“值不存在”?

from enum import Enum

class EventType(Enum):
    USER_LOGIN = 1,
    USER_LOGOUT = 2,

    @classmethod
    def has_value(cls, value):
        return value in cls._value2member_map_

eventType = 2
if not EventType.has_value(eventType):
    print("BAD")
else:
    print("GOOD")
    
if eventType in EventType.__members__.values():
    print("Value exists")
else:
    print("Value does not exist")
python python-3.x enums
1个回答
2
投票

正如 @msanford 在评论中所说,删除值中的尾随逗号——它们正在创建元组。

© www.soinside.com 2019 - 2024. All rights reserved.