Gaz*_*732 4 python arguments function python-3.x
我目前正在学习Python,并希望有人可以帮助我.我对编码很新,所以如果它解释得很好会非常有用.
假设我有一个函数调用function1返回:
return (row, column)
Run Code Online (Sandbox Code Playgroud)
现在我正在编写另一个名为say的函数function2.在这个函数中,我需要调用say:
exampleItem.exampleName(row, column, name)
Run Code Online (Sandbox Code Playgroud)
我如何使用function1行和列的输出作为上一行中的row和column参数function2?
我真的希望这是有道理的,因为我之前没有正确地写一个问题而受到严重的惩罚,因为我没有意识到这里的最佳做法.
在所有版本的Python中,您都可以:
row, column = function1()
exampleName(row, column, name)
Run Code Online (Sandbox Code Playgroud)
在更新的版本(3.5+)中,您可以使用解压缩来执行以下操作:
exampleName(*function1(), name)
Run Code Online (Sandbox Code Playgroud)
如需进一步阅读,请参阅:PEP 448 - 其他拆包概括.
在将其作为参数放在另一个函数中之后,您可以使用星号*来解压缩调用函数的结果 - 这是一个元组function1.这导致在function1第二个中提供从位置参数返回的元素:
exampleItem.exampleName(*function1(), name)
Run Code Online (Sandbox Code Playgroud)
在Python中2.x你可以做同样的事情但是,你需要以关键字的形式提供剩余的位置参数,以使其能够使用*:
exampleItem.exampleName(*function1(), name=name)
Run Code Online (Sandbox Code Playgroud)
这也适用于Python 3.x,因此您没有可移植性问题.
当然,在先前的声明中解压缩row, column = function1()然后按位置将它们提供给第二个函数:
exampleItem.exampleName(row, column, name)
Run Code Online (Sandbox Code Playgroud)
是另一种选择.它最终落到了偏好:-)