Python 函数如何可选地返回一个或多个值

Python 函数如何可选地返回一个或多个值,python,return,Python,Return,忽略函数f()的可选返回值的首选方法是什么 (a) (b) (c) 如果函数有时返回两个变量,另一次返回一个变量,那就是自找麻烦 foo, _ = f() 通常使用下划线忽略变量是标准做法,但在您的情况下,如果出于任何原因,此调用f()仅返回一个变量,则会出现运行时错误 除非您能保证这次f()将返回两个变量,否则最好这样做 b = f() if(isinstance(b, tuple)): foo = b[0] 显然不是C,A更像pythonicb)最有意义。C)是不可伸缩的,A)

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

(a)

(b)

(c)


如果函数有时返回两个变量,另一次返回一个变量,那就是自找麻烦

foo, _ = f()
通常使用下划线忽略变量是标准做法,但在您的情况下,如果出于任何原因,此调用
f()
仅返回一个变量,则会出现运行时错误

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

b = f()

if(isinstance(b, tuple)):
    foo = b[0]

显然不是
C
A
更像pythonicb)最有意义。C)是不可伸缩的,A)仅仅浪费了一个无用的对象的空间。A)如果你想跳过中间值,就好了,比如路径,文件,OS中的文件。FACK(…)@ HARIS,在这个上下文中,可伸缩性是什么意思?@马克斯,这不能是一个标准的方法,因为不能使用FRO函数,它可以返回1, 2或3个返回值。“如果对f()的调用只返回一个变量,您将得到一个运行时错误。”
foo,*.=f()
在Python3上解决了这个问题。
\u
将只是一个空列表。
b
从何而来?这是打字错误吗?
def f(return_bar=True):
    if return_bar:
        return foo, bar
    else:
        return foo

foo = f(return_bar=False)
foo, _ = f()
b = f()

if(isinstance(b, tuple)):
    foo = b[0]