有人知道如何在下面这样的单个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"中接收单个返回值的演示;海象;分配