我被困在一个简单的问题中,我找不到答案。如果要在 if 语句中调用函数。这是一个非常具有挑战性的功能,需要很长时间才能获得响应,我该如何保留返回值?
我用一个例子来解释这个问题:
def recursive:
if .... :
return value
else:
return False
recursive 是一个假设函数,它需要很多时间来生成响应,它可以是一个值或只是一个简单的布尔值 False。
...
if recursive():
...value? (make something with value return)
其他方法
...
if recursive():
value = recursive()
这种另一种方法将调用该函数 2 次,而且花费的时间太长。
我该如何解决这个问题?
Python 3.8 将添加一个运算符来完成此操作(称为 walrus 运算符:=
),但不幸的是,您今天可以做的最接近的事情是
value = recursive()
if value:
pass # do stuff with value
else:
pass # do other stuff with value
# can still do stuff with value here
如果在 3.8+ 上运行,以下内容将有效
if value := recursive():
pass # do stuff with value
else:
pass # do other stuff with value
# can still do stuff with value here
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句