我的函数getCompMove
返回4个值:
def getCompMove(x,y, pile1, pile2):
# some calculation, values are changed
return x,y, pile1, pile2
我需要以两种不同的方式称呼它
使用所有4个返回的结果
x, y, pile1, pile2 = getCompMove(x,y, pile1, pile2)
并且仅使用返回元组的最后两部分:
pile1, pile2 = getCompMove(x,y, pile1, pile2)
最后一行代码将在运行时因Too many values to unpack
问题:如何从功能中重新获得4个中的2个值?有可能吗?
答案 0 :(得分:4)
你可以做几件事;最常见的是:
忽略前两个返回值:
_, _, pile1, pile2 = getCompMove(x,y, pile1, pile2)
按惯例, _
是您计划忽略的作业的名称。
在Python 3中,可以使用*
前缀指定一个包含全部的分配目标:
*_, pile1, pile2 = getCompMove(x,y, pile1, pile2)
其中Python将最后两个参数适合pile1
和pile2
,并将剩下的内容分配给_
。
切换返回的元组:
pile1, pile2 = getCompMove(x,y, pile1, pile2)[-2:]
其中[-2:]
选择最后两个值。