将函数作为两个参数传递

时间:2017-09-10 16:20:30

标签: python-3.x

所以我有一个带两个参数的函数和另一个返回这两个参数的函数。但是我似乎无法弄清楚如何做到这一点。为了简化我的代码,我将编写功能。

def my_function(x, y):
    return x + y

def get_x_and_y():
    x, y = [5, 10]
    return x, y

print(my_function(get_x_and_y()))

所以这给出了一个错误,我不知道该怎么做。

我知道这可能会得到解答,但我不太确定如何在谷歌上发帖,我已经找了一段时间。

2 个答案:

答案 0 :(得分:0)

问题的答案在这里:What does ** (double star/asterisk) and * (star/asterisk) do for parameters?。正如Everts评论中所建议的那样:

print(my_function(*get_x_and_y()))

星号执行参数扩展(在Ruby中也称为splatting,我喜欢这个术语:))

答案 1 :(得分:0)

Python中的函数总是只返回一个项目。在get_x_and_y的情况下,该项是长度为2的元组。

因此,您当前的代码只使用一个参数(一个元组)调用my_function。您希望使用* 扩展该元组添加到函数的参数中:

my_function(*get_x_and_y())