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

如何为返回typing.List[type(el)]的Python函数添加类型提示?

解决方案

要实现让函数返回值的类型提示与输入元素el的类型完全匹配,你需要用到Python的泛型类型提示,核心是用TypeVar来关联输入和返回值的类型。

修改后的兼容版代码(支持Python 3.5+)

import typing
from typing import TypeVar, List

# 定义一个泛型类型变量,用来占位输入元素的具体类型
T = TypeVar('T')

def make_list(el: T) -> List[T]:
    return [el, el]

简化版代码(Python 3.9+可用)

从Python 3.9开始,标准库的内置容器类型(比如list)支持直接添加类型参数,无需再依赖typing.List,代码会更清爽:

from typing import TypeVar

T = TypeVar('T')

def make_list(el: T) -> list[T]:
    return [el, el]

原理说明

这里的TypeVar('T')相当于一个“动态类型占位符”——当你传入具体类型的参数(比如整数123或字符串"test"),Python的类型检查器会自动把T替换为该参数的实际类型,返回值的类型提示也就变成了对应类型的列表(比如List[int]或List[str]),完美实现了你想要的typing.List[type(el)]的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:54:11