我有以下课程:
class YesOrNn(enum.Enum):
YES = "Y"
NO = "N"
我收到了诸如
YesOrNo("true")
或 YesOrNo("false")
, 之类的输入
为了完成这项工作,我想我需要将课程更改为:
class YesOrNn(enum.Enum):
YES = "true"
NO = "false"
但是,我也有一种情况,每当变量的值保存为
YesOrNo.YES.value
时,它应该回答"Y"
。
我似乎不知道如何实现这一点
您想要
_missing_
方法:
import enum
class YesOrNo(enum.Enum):
YES = "Y"
NO = "N"
@classmethod
def _missing_(cls, value):
if value.lower() in ('y', 'yes', 'true', 't'):
return cls.YES
elif value.lower() in ('n', 'no', 'false', 'f'):
return cls.NO