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 值的演示.
有没有人知道如何在单个 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 值的演示.