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

Python如何用类型注解指定函数返回值与映射函数输出为同类型

Python实现函数返回值与入参映射函数输出类型一致的方法

不需要将函数封装到带泛型的类中,Python直接支持函数级别的泛型声明,使用TypeVar即可实现和Java泛型完全等价的效果,具体实现方式如下:

实现步骤

  1. 首先从typing模块导入所需的类型标注工具,声明泛型变量T,用于指代任意统一类型
  2. 给函数的参数和返回值标注对应的泛型类型即可

完整代码示例

from typing import Callable, TypeVar

# 声明泛型类型变量T,可代表任意类型
T = TypeVar('T')

def get_value(mapping_function: Callable[[str], T]) -> T:
    # 示例业务逻辑:先从数据源获取字符串类型的原始值
    raw_value: str = "示例数据源返回的原始字符串"
    # 执行映射后返回,类型与映射函数输出完全一致
    return mapping_function(raw_value)

效果验证

类型检查工具(mypy、pyright等)可以自动根据传入的映射函数推断返回值类型,不需要额外手动标注:

# 示例1:映射函数返回int类型,get_value返回值会被自动识别为int
def str_to_int(s: str) -> int:
    return int(s.strip())

int_result = get_value(str_to_int)
# 类型检查器会判定int_result为int类型,调用int相关方法不会报类型错误

# 示例2:映射函数返回bool类型,get_value返回值自动识别为bool
bool_result = get_value(lambda s: len(s) > 10)
# 类型检查器会判定bool_result为bool类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 09:54:07