在Python函数中返回元组

时间:2013-09-12 03:26:01

标签: python

我写的这个函数:

def simulate_turn(num_rolls, score, opponent_score):
    """This function takes in two scores and a number of die rolls and returns
    what the two scores would be if num_rolls many dice were rolled. This takes
    into account the swine swap, free bacon, and hog-wild."""
    x = score
    y = opponent_score
    x += take_turn(num_rolls,opponent_score,select_dice(score,opponent_score))
    if ifwillswap(x,y):
        swap(x,y)
    return x,y

当在交互式python shell中运行时(该函数来自.py文件),它返回一个int对象而不是一个元组!我究竟做错了什么?我试图让它变成一对值,而不是一个int对象。

2 个答案:

答案 0 :(得分:0)

您已经返回了一对值。即使你在某个地方以某种方式打破了xy并且像这样有些荒谬:

def example():
    return None, None
a = example()

a在执行该函数后仍会保留对元组(None, None)的引用。所以你要返回两个“somethings”的元组,唯一的问题是那些“有些东西”以及你如何存储它们。您没有理由认为您的函数返回int,因为它没有。无论如何,使用您使用的语法,您的函数返回两种类型的元组。你甚至可以做return x,,这将返回一个项目元组。逗号会阻止您只返回int

答案 1 :(得分:0)

我的猜测是你的函数swap()可能是你的变量y等于None,你可能会错误解释返回的值。正如其他人所说的那样,我不知道你怎么能看到任何东西,只有一个元组作为回报。