从一个方法解析返回值作为另一个函数的两个参数?

时间:2016-11-22 00:43:15

标签: python python-3.x oop

我有一个函数def findSpace(aBookcase):,它返回return row,column,另一个函数返回def setName(self, row, column, name):

现在,当我执行aBookcase.setName(findSpace(aBookcase), name)时,我得到TypeError: setName() takes exactly 4 arguments (3 given)

如何将findSpace()的结果解析为函数setName()的两个参数,而不更改find​​Space(),因为我已经有其他代码依赖于它

1 个答案:

答案 0 :(得分:1)

findSpace返回一个元组。这是一个目标。除了实例本身之外,aBookcase.setName还需要三个独立的参数。解压缩结果,然后使用参数:

r,c = findSpace(aBookcase)
aBookcase.setName(r, c, name)

在Python 3.5或更高版本中,您只需使用*

aBookcase.setName(*findSpace(aBookcase), name)