所以我有一个带两个参数的函数和另一个返回这两个参数的函数。但是我似乎无法弄清楚如何做到这一点。为了简化我的代码,我将编写功能。
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()))
所以这给出了一个错误,我不知道该怎么做。
我知道这可能会得到解答,但我不太确定如何在谷歌上发帖,我已经找了一段时间。
答案 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())