首页 > 解决方案 > 如何在可以接受多种不同类型的python数据类中制作List?

问题描述

我正在 python 中创建新的数据类。

@dataclass
class User(Mixin):
  id: int = None
  items: List[DefaultItem] = None

itemsDefaultItem对象数组,但我需要它是多个可能的对象,例如:

items: List[DefaultItem OR SomeSpecificItem OR SomeOtherItem] = None

我怎样才能在python中做这样的事情?

标签: pythonpython-3.x

解决方案


你可以用typing.Union这个。

items: List[Union[DefaultItem, SomeSpecificItem, SomeOtherItem]] = None

如果您使用的是 Python 3.10,他们添加了一个方便的速记符号:

items: list[DefaultItem | SomeSpecificItem | SomeOtherItem] = None

还请注意:如果items允许为None,则应将类型标记为Optional


推荐阅读