python中的多个返回值

Sha*_*the 5 python

我想更改python函数以返回两个值.如何实现这一点而不影响任何以前只需要一个返回值的函数调用?

例如.

原始定义:

def foo():
    x = 2
    y = 2
    return (x+y)
Run Code Online (Sandbox Code Playgroud)

sum = foo()

Ne定义:

def foo():
    x = 2
    y = 2
   return (x+y), (x-y)
Run Code Online (Sandbox Code Playgroud)

sum,diff = foo()

我想以前一次调用foo的方式保持有效吗?这可能吗?

Jor*_*ley 12

def foo(return_2nd=False):

    x = 2
    y = 2
    return (x+y) if not return_2nd else (x+y),(x-y)
Run Code Online (Sandbox Code Playgroud)

然后调用新版本

sum, diff = foo(True)
sum = foo() #old calls still just get sum
Run Code Online (Sandbox Code Playgroud)

  • 我强烈建议以这种方式调用函数`foo`:`foo(return_2nd = True)`而不是`foo(True)`因为更明确,增强了可读性,并且对于不知道这个的其他程序员会很清楚函数可以根据参数返回不同数量的结果.当然_return_2nd_可以更改为更明确的东西,如_return_diff_或类似的东西. (5认同)