第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在枚舉中搜索值

在枚舉中搜索值

慕哥6287543 2022-01-05 11:28:02
我是python的新手。我正在嘗試檢查字符串是否具有在 Enum 中定義的任何匹配值。例如,我想在下面的代碼中打印“找到”我添加了以下隱式方法的定義以支持比較、散列和獲取方法from enum import Enumclass States(Enum):    COMPLETED_STATE = 'completed'    DEPENDENCY_WAIT_STATE = 'dependency_wait'    FAILED_NO_RERUN_STATE = 'failed_no_rerun'    IGNORED_STATE = 'ignored'    RUNNING_STATE = 'running'    NEVER_RUN_STATE = 'never_run'    ON_HOLD_STATE = 'on_hold'    def __hash__(self):        return hash(self.value)    def __str__(self):        return self.value    def __eq__(self, other):        if type(self) == type(other):            return self.value == other.value        return self.value == other    def __get__(self, *args, **kwargs):        return self.valueMap = {    States.ON_HOLD_STATE: [States.NEVER_RUN_STATE],    States.DISABLED_STATE: [States.NEVER_RUN_STATE],    States.RUNNING_STATE: [States.DEPENDENCY_WAIT_STATE,                           States.ON_HOLD_STATE,                           States.NEVER_RUN_STATE],    States.IGNORED_STATE: [States.RUNNING_STATE,                           States.NEVER_RUN_STATE]}print(Map[States.RUNNING_STATE]) // ['dependency_wait', 'on_hold', 'never_run']print(Map['running']) // ['dependency_wait', 'on_hold', 'never_run']print(States.RUNNING_STATE == 'dependency_wait') // Falseprint(States.RUNNING_STATE == 'running') // Trueprint(States.RUNNING_STATE == States.RUNNING_STATE) // True if 'running' in States:    print "Found" // Does not gets printedif States.RUNNING_STATE in States:    print "Found here" // Does not gets printed
查看完整描述

1 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

元級Enum,EnumMeta定義了__contains__測試魔術方法,如果一個Enum實例是一個給定的成員Enum僅基于成員的名稱,而不是值類,所以如果你希望它能夠基于值測試會員,你將有EnumMeta.__contains__使用遍歷_member_map_dict 屬性值的函數(shù)進行覆蓋,并將每個成員值與給定的測試值進行比較以實現(xiàn):


from enum import Enum, EnumMeta


def custom_EnumMeta__contains__(cls, member):

    return isinstance(member, cls) and member.name in cls._member_map_ or \

        any(m._value_ == member for m in cls._member_map_.values())

EnumMeta.__contains__ = custom_EnumMeta__contains__


class States(Enum):

    COMPLETED_STATE = 'completed'

    DEPENDENCY_WAIT_STATE = 'dependency_wait'

    FAILED_NO_RERUN_STATE = 'failed_no_rerun'

    IGNORED_STATE = 'ignored'

    RUNNING_STATE = 'running'

    NEVER_RUN_STATE = 'never_run'

    ON_HOLD_STATE = 'on_hold'


if 'running' in States:

    print "Found"


if States.RUNNING_STATE in States:

    print "Found here"

這輸出:


Found

Found here


查看完整回答
反對 回復 2022-01-05
  • 1 回答
  • 0 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號