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



有人知道如何在下面这样的单个IF语句中从多返回值函数中检查变量a==0的值吗?

if (a, b, c = some_function()) == 0: #currently it is wrong
...
...
else:
...
...
def some_function():
return 0, 123, "hello"

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

您可以使用_作为变量名来指示未使用该值。

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

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

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

但这可读性较差,因为您不需要为返回值指定名称来记录其含义。

使用";海象操作员;:=,但它不支持可迭代的拆包(在第一个示例中使用(。

这是我使用walrus操作符所能获得的最接近的结果。我很抱歉在没有完全检查的情况下就把票关了。

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答案(向上投票(,仅添加了在"0"中接收单个返回值的演示;海象;分配

相关内容

  • 没有找到相关文章

最新更新