函数如何选择性地返回一个或多个值

Max*_*Max 8 python return

忽略函数 f() 的可选返回值的首选方法是什么?

A)

foo, _ = f()
Run Code Online (Sandbox Code Playgroud)

b)

foo = f()[0]
Run Code Online (Sandbox Code Playgroud)

C)

def f(return_bar=True):
    if return_bar:
        return foo, bar
    else:
        return foo

foo = f(return_bar=False)
Run Code Online (Sandbox Code Playgroud)

小智 6

如果您的函数有时返回两个变量,有时返回一个变量,那么您就会遇到麻烦。

foo, _ = f()
Run Code Online (Sandbox Code Playgroud)

通常使用下划线忽略变量是标准做法,但在您的情况下,如果出于某种原因,此调用f()仅返回一个变量,您将收到运行时错误。

除非你能保证f()这次会返回两个变量,否则最好这样做

b = f()

if(isinstance(b, tuple)):
    foo = b[0]
Run Code Online (Sandbox Code Playgroud)

  • “如果对 f() 的调用仅返回一个变量,您将收到运行时错误。” `foo, *_ = f()` 在 Python 3 上解决了这个问题。`_` 只是一个空列表。 (5认同)