python中具名元祖namedtuple配合Enum的使用

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)

posted @   专职  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示