关于python:使用具有多个结果的函数作为参数

Use a function with multiple results as arguments

本问题已经有最佳答案,请猛点这里访问。

我有一个返回多个值的函数,我可以直接在另一个函数的参数列表中使用这个函数吗?当我(天真地)尝试时,我得到:

1
2
3
4
5
6
7
8
9
10
11
12
13
def one() :
    return 3, 2
def two(a, b):
    return a + b
two(one())
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-86-27980b86a2c0> in <module>()
  3 def two(a, b):
  4     return a + b
----> 5 two(one())

TypeError: two() missing 1 required positional argument: 'b'

我当然可以做一些像

1
2
3
4
5
6
def one() :
    return 3, 2
def two(a, b):
    return a + b
a, b = one()
two(a, b)


当然。

1
two(*one())

*是参数解包

有用的阅读:了解python的星号(*)