例如,
def print_list(my_list: Union[List[int], List[str]]):
...
那么,
my_list
将是一个整数列表或字符串列表,但不是整数和字符串混合元素的列表。但我认为这太复杂了,所以我想创建一个新类型UnionList
,如下所示:
UnionList = ... # I don't know how to define this
def print_list(my_list: UnionList[int, str]):
...
我应该如何定义
UnionList
来表示与 Union[List[T1], List[T2], ...]
相同的类型?
使用
typing.TypeVar
和 typing.Union
创建通用别名(从 Python 3.10 开始为 |
):
from typing import TypeVar
T1 = TypeVar("T1")
T2 = TypeVar("T2")
UnionList = list[T1] | list[T2]
def print_list(my_list: UnionList[int, str]):
...
我对这个主题没什么经验,但在我最近的项目中,我在 python3.10 中做到了这一点:
def print_list(my_list: list[str|int] ):
...
我很高兴听到任何支持或反对的建议