from enum import Enum
from collections import namedtuple
class MainTypeEnum(Enum):
FIRST = 1
SECOND = 2
MainTypeEnumNamedTuple = namedtuple("MainTypeEnum", ("sub_type", "main_type"))
class SubTypeEnum(Enum):
NAME = MainTypeEnumNamedTuple(1, MainTypeEnum.SECOND)
AGE = MainTypeEnumNamedTuple(2, MainTypeEnum.SECOND)
if __name__ == '__main__':
print(SubTypeEnum.NAME.value)
print(SubTypeEnum.NAME.value[0], SubTypeEnum.AGE.value[1].value)
print(SubTypeEnum.NAME.value.sub_type, SubTypeEnum.AGE.value.main_type.value)
print(SubTypeEnum.NAME.value._asdict())
print(SubTypeEnum.NAME.value._asdict()["sub_type"], SubTypeEnum.NAME.value._asdict()["main_type"].value)
p = MainTypeEnumNamedTuple(**{"sub_type": "Lisi", "main_type": 28})
print(p.sub_type, p.main_type)
p = p._replace(sub_type="王五")
print(p)