Python 如何从 IF 语句中的多个返回值中检查其中一个变量的值

How to check the value of one of the variable from multiple returned values in an IF statement in Python

有没有人知道如何在单个 IF 语句中从多个 return 值函数中检查变量 a == 0 的值,如下所示,

if (a, b, c = some_function()) == 0: #currently it is wrong
    ...
    ...
else:
    ...
    ...

def some_function():
    return 0, 123, "hello"

首先将 return 值解压缩到变量,然后检查变量的值。

可以使用_作为变量名,表示该值未被使用

a, _, _ = some_function()
if a == 0:
    # ...

或者如果您以后根本不需要访问任何 return 值,您可以使用索引:

if some_function()[0] == 0:
    # ...

但这可读性较差,因为您无法为 return 值命名以记录其含义。

使用 "walrus operator" :=, but it does not support iterable unpacking(在第一个示例中使用)是很诱人的。

这是我能与海象操作员取得的最接近的结果。 我很抱歉没有完全检查就关闭了工单。

def some_function():
    return 0, 123, "hello"

if (my_tuple := some_function() )[0] == 0:
    print ("Check worked")
else:
    print ("Check failed")

a, b, c = my_tuple

这非常接近 mkrieger1's 答案(已投票),仅添加了在“海象”作业中接收 单个 return 值的演示.