如何在python函数中返回多个可选值?

如何在python函数中返回多个可选值?,python,Python,我有一个函数,它应该返回至少一个输出,并且应该根据我设置标志的方式返回可选值。例如: def foo(a, b, f1=False, f2=False, f3=False): c = a + b if f1: d = a - b elif f2: e = a * b elif f3: f = a / b if f1: return c, d elif f2: retu

我有一个函数,它应该返回至少一个输出,并且应该根据我设置标志的方式返回可选值。例如:

def foo(a, b, f1=False, f2=False, f3=False):
    c = a + b
    if f1:
        d = a - b
    elif f2:
        e = a * b
    elif f3:
        f = a / b

    if f1:
        return c, d
    elif f2:
        return c, e
    elif f3:
        return c, f
    elif f1 and f2:
        return c, d, e
    elif f1 and f3:
        return c, d, f
    elif f2 and f3:
        return c, e, f
    elif f1 and f2 and f3:
        return c, d, e, f
    else:
        return c

如果我有
f1,f2,…,fn作为输入,我将需要写入
2**n
返回。那可能太多了。有没有更好的办法处理?示例代码根据@Tim Roberts的注释进行了更正。

按照您的编写方式,您永远不会得到多个结果。将只使用if/elif/elif序列中的一个

def foo(a, b, f1=False, f2=False, f3=False):
    answer = [a + b]
    if f1:
        answer.append( a - b )
    if f2:
        answer.append( a * b )
    if f3:
        answer.append( a / b )
    return answer

返回
列表
?不要写入
f1和f2
。这不是C。在Python中,您可以编写
f1和f2
。这两者不能互换。@蒂姆·罗伯茨,谢谢。@masklin我仍然需要编写许多
if
语句来返回不同的输出