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

返回多值的函数能否直接用作其他函数的参数?报错咨询

问题解答:用返回多值的函数作为另一个函数的参数

当然可以直接用返回多值的函数作为另一个函数的参数!你遇到的报错是因为Python的默认行为:one()返回的其实是一个元组(哪怕你写的是return 3,2,Python会自动把它打包成元组(3,2)),直接把这个元组传给two()时,它会被当成单个参数,但two()需要两个独立的位置参数,所以才会抛出TypeError。

解决方法:使用解包操作符 *

只需要在调用one()的时候加上*,它会把元组里的元素逐个拆成独立的参数传递给two(),代码修改如下:

def one():
    return 3, 2  # 实际返回元组 (3, 2)

def two(a, b):
    return a + b

# 用 * 解包元组,将3和2分别传给a和b
print(two(*one()))  # 输出:5

额外拓展

这个解包操作不止适用于元组,任何可迭代对象(比如列表、集合、生成器)都可以用*来解包作为位置参数:

def two(a, b):
    return a + b

# 用列表示例
def three():
    return [4, 5]

print(two(*three()))  # 输出:9

如果你的函数返回的是键值对形式的字典,还可以用**来解包作为关键字参数:

def four():
    return {"a": 6, "b": 7}

def two(a, b):
    return a + b

print(two(**four()))  # 输出:13

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:10:17