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

Python如何设置函数返回类型与输入参数的类型保持一致?

你当前的写法问题出在Type[T]的使用上:Type[T]用来注解「T类型本身」(比如str、int这类类对象),而非T类型的实例,你只需要把参数注解直接改为T即可满足需求。

修正后的代码如下:

from typing import TypeVar

T = TypeVar("T")

def lowercase_if_possible(target: T) -> T:
    if isinstance(target, str):
        return target.lower()  # type: ignore
    return target

逻辑说明

  • 泛型T会根据你传入的参数类型自动推导:传入字符串时T就是str,传入整数时T就是int,完全匹配输入参数的类型
  • 返回值注解为T,自然就和输入参数类型保持一致
  • 注释# type: ignore是为了兼容部分类型检查器的窄化限制:你已经通过isinstance判断参数是字符串,此时返回lower()的结果必然和输入类型一致,这个忽略不会引入类型安全问题

你可以用下面的代码验证类型推导效果:

# 以下变量都会被类型检查器正确识别对应类型
str_val = lowercase_if_possible("TEST")  # 类型为str
int_val = lowercase_if_possible(456)     # 类型为int
list_val = lowercase_if_possible([1,2])  # 类型为list[int]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:27:04