我有一个这样的结构:
from enum import Enum
class MainEnum(str, Enum):
A = "AA"
B = "BB"
...
class ChildAEnum(str, Enum):
C = "CC"
D = "DD"
class ChildBEnum(str, Enum):
E = "EE"
F = "FF"
...
child_mapping = {
MainEnum.A: ChildAEnum
MainEnum.B: ChildBEnum
...
}
其中MainEnum
上的每个Enum
都有另一个Enum
与其关联,并由child_mapping
映射指示
我想要一个Union
类型提示,它可以是child_mapping
中的任意一个值。我不知道它是否相关,但我正在使用pydantic
,我想用它来自动验证字段
手动操作,准确地说:
class Something(BaseModel):
some_child: Union[ChildAEnum, ChildBEnum]
但是我希望能够向child_mapping
添加另一个键值对,并让Union
自动识别它
我尝试了以下方法:
class Something(BaseModel):
some_child: Union[*list(child_mapping.values())]
list(child_mapping.values())
成功地为我获取了想要使用的类型列表,但解包似乎不起作用
我能做到吗
写下这个问题帮助我思考它。解决方案是,将
child_mapping.values()
转换为list
,而不是将其转换为tuple
因此,解决方案是:
相关问题 更多 >
编程相关推荐