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

Python中函数返回多值较单值出现性能下降的原因是什么?

Python多返回值性能损耗底层原因

核心原因是Python的多返回值属于语法糖,本质是隐式创建元组对象返回,额外的元组创建开销就是性能差异的来源,具体细节如下:

  • 单值返回逻辑:函数返回单个值时,直接将值的引用传递给调用方即可,不需要额外创建容器对象。你测试用例中返回的是a+b的计算结果(整型),本身不需要额外的对象创建步骤,仅返回引用的开销极低。
  • 多值返回逻辑:写return a+b, True时,Python解释器会自动隐式执行tuple((a+b, True))操作,先把多个返回值打包成一个新的元组对象,再返回这个元组的引用。创建元组需要申请内存空间、写入两个元素的引用,这些步骤都是单值返回没有的额外开销。

你可以通过dis模块查看字节码确认差异:

import dis
def single_return(a,b):
    return a+b
def multi_return(a,b):
    return a+b, True

# 输出单值返回字节码
print("单值返回字节码:")
dis.dis(single_return)
# 输出多值返回字节码
print("\n多值返回字节码:")
dis.dis(multi_return)

执行后可以看到多值返回的函数多了BUILD_TUPLE 2指令,该指令就是用来将栈顶的2个元素打包为元组,正是这一步带来了额外耗时。

需要注意的是这个开销本身非常小,只有在百万级以上的高频调用场景下才会出现可观测的差异,普通业务场景下无需为了这点性能牺牲代码的可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:15:00