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

Python函数返回类型标注为何未自动执行类型转换?

问题:Python函数标注返回类型为str,却未返回字符串?

以下是我编写的Python代码:

def add(num1:int,num2:int ) -> str:
    num3 = num1+num2
    return num3
num1 , num2 = 5,6
ans = add(num1,num2)
print(type(ans))
print(f"Addition of {num1} and {num2} is {ans}")

我原本预期type(ans)的结果为string类,但只有将return语句改为return str(num3)时才能得到该结果。我看到函数语法为def function_name(parameter: data_type) -> return_type:,为何我标注返回类型为str,函数却未返回string类?该场景下无法自动进行类型转换吗?


解答

Python里的类型提示(Type Hints)只是一种标注说明,用来给开发者、IDE或者类型检查工具做参考,它不会自动执行类型转换,也不会强制约束函数的实际返回类型。

你写的-> str只是在告诉别人“这个函数设计上应该返回字符串”,但Python解释器运行代码时完全忽略这个标注——你返回的num3是两个整数相加的结果,本质还是int类型,所以type(ans)自然是<class 'int'>。

要让函数返回字符串类型,必须显式手动转换,也就是像你做的那样,用str()把整数结果转成字符串后再返回:return str(num3)。

核心要点:

  • 类型提示属于注释范畴,不是可执行的逻辑代码
  • Python是动态类型语言,变量类型由实际赋值决定,不会因类型提示自动改变
  • 类型转换必须通过str()、int()这类转换函数显式完成

内容的提问来源于stack exchange,提问作者Y Chandra Sekhar Reddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 13:59:54