You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中创建结合List与Union的自定义类型提示

定义等价于Union[List[T1], List[T2], ...]的UnionList类型

你可以通过Python的类型变量元组(TypeVarTuple)和拆包(Unpack)特性来实现这个自定义类型,具体代码如下:

from typing import TypeVarTuple, Unpack, List, Union, TypeAlias

# 定义可变长度的类型变量元组
Ts = TypeVarTuple('Ts')

# 定义UnionList类型别名,等价于Union[List[T1], List[T2], ...]
UnionList: TypeAlias = Union[List[Unpack[Ts]]]

使用示例

def print_list(my_list: UnionList[int, str]):
    for item in my_list:
        print(item)

# 合法调用:纯整数列表或纯字符串列表
print_list([1, 2, 3])
print_list(["apple", "banana"])

# 非法调用:混合类型列表,会被类型检查器识别为错误
print_list([1, "apple"])

版本兼容说明

TypeVarTuple和Unpack是Python 3.11及以上版本typing模块的原生特性。如果你的Python版本低于3.11,可以安装typing_extensions库,然后从该库导入这两个类来实现相同功能:

from typing_extensions import TypeVarTuple, Unpack
from typing import List, Union, TypeAlias

Ts = TypeVarTuple('Ts')
UnionList: TypeAlias = Union[List[Unpack[Ts]]]

内容的提问来源于stack exchange,提问作者Younghoon Jeong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 05:50:57