如何在不重新定义的情况下提取 python 枚举子集?

如何在不重新定义的情况下提取 python 枚举子集?


from enum import unique, Enum

@unique

class MyEnum(Enum):

    ONE = 1

    TWO = 2

    THREE = 3

    FOUR = 4

我想获得相当于而MyDesiredSubset无需再次定义它。


@unique

class MyDesiredSubset(Enum):

    THREE = 3

    FOUR = 4

到目前为止,我尝试过这样的事情,但MyTrySubset被破坏了,代码也很丑陋。


@unique

class MyTrySubset(Enum):

    pass


for item in MyEnum:

    setattr(MyTrySubset, item.name, item.value)

任何建议如何在MyDesiredSubset不重新定义的情况下获得?


慕的地6264312
浏览 194回答 3
3回答

12345678_0001

帕特里克·阿特纳 (Patrick Artner) 的回答包含了我正在寻找的循环遍历枚举的内容,其中 if 语句保留所需元素。刚刚提取了相关位。MySubset = Enum("MySubet", [(a.name, a.value) for a in MyEnum if a.value > 2 ] )似乎相当于(没有唯一的装饰器):class MySubset(Enum):    THREE = 3    FOUR = 4
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python