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

Python中多变量接收单个函数返回值为何各变量值不同?

为什么多个变量赋值给函数调用后值不同?

这是因为你误解了Python里这种赋值方式的逻辑——beans, jars, crates = secret_formula(start_point)不是把函数返回的同一个值同时赋值给三个变量,而是做了「元组解包」操作。

具体拆解:

  1. 函数返回的是多个值(本质是元组)
    看secret_formula函数的最后一行:return jelly_beans, jars, crates,Python里用逗号分隔的多个返回值,会被打包成一个元组返回。代入start_point=10000计算时,它实际返回的是(5000000, 5000, 50)这样的元组。

  2. 解包操作把元组元素分配给对应变量
    等号左边的beans, jars, crates是三个变量,Python会把函数返回的元组里的第一个元素赋值给beans,第二个给jars,第三个给crates。这就对应了函数内部计算出的三个不同结果,所以三个变量值自然不同。

如果你想让三个变量值一致

那得用这种写法:

beans = jars = crates = secret_formula(start_point)[0]  # 取返回元组的第一个元素赋值给所有变量

或者直接修改函数让它返回单个值,但显然这不是这段代码的设计意图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:05:24