gpt4 book ai didi

python - 如何迭代枚举的所有值,包括任何嵌套的枚举?

转载 作者:行者123 更新时间:2023-12-04 09:46:18 24 4
gpt4 key购买 nike

想象一下,有两个派生自 Enum 的类。 ,例如

class Color(Enum):
blue = 'blue'
red = 'red'

class Properties(Enum):
height = 'h'
weight = 'w'
colors = Color


什么是(可能递归地)迭代嵌套枚举的所有枚举标签的最佳方法,例如 Properties ,包括 Enum 的那些-成员(member)喜欢 Properties.colors在上面的例子中(即包括 Color.blueColor.red )?检查值的类型?

最佳答案

这是一个简单的示例,它只是将它们打印出来。我将把它作为练习留给读者,以使其成为通用生成器或适用于实际用例的任何内容。 :)

>>> from typing import Type
>>> def print_enum(e: Type[Enum]) -> None:
... for p in e:
... try:
... assert(issubclass(p.value, Enum))
... print_enum(p.value)
... except (AssertionError, TypeError):
... print(p)
...
>>> print_enum(Properties)
Properties.height
Properties.weight
Color.blue
Color.red

关于python - 如何迭代枚举的所有值,包括任何嵌套的枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62090541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com