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

Python函数能否支持多返回类型?分支返回不同类型的签名是否可行

Python函数的多返回类型问题
  • Python作为动态类型语言,完全支持函数拥有多种返回类型,也允许通过if-else等分支结构返回不同类型的值。你提供的代码逻辑上是可以正常运行的,不会触发语法错误。
  • 但你写的函数返回类型标注-> [String, List]是不规范的,Python的类型提示系统不认可这种写法:
    1. 首先,Python内置类型的类型提示应该用小写的str和list,而不是String和List(大写的是typing模块里的泛型类型,用于更复杂的标注场景);
    2. 表示“返回str或list类型”的正确方式,需要用联合类型:
      • Python 3.9及以下,需要从typing模块导入Union:
        from typing import Union
        import random
        
        def return_different() -> Union[str, list]:
            a = random.randint(1, 10)
            if a % 2 == 0:
                return []
            else:
                return "odd"
        
      • Python 3.10及以上,支持更简洁的竖线|语法:
        import random
        
        def return_different() -> str | list:
            a = random.randint(1, 10)
            if a % 2 == 0:
                return []
            else:
                return "odd"
        
  • 额外提醒:虽然语法允许返回不同类型,但实际开发中要谨慎使用——调用该函数的代码需要处理两种不同的返回类型,增加了逻辑复杂度,容易引发bug。如果必须这么做,最好在函数文档字符串里明确说明不同分支的返回类型情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:05:27