我陷入了一个简单的问题,我找不到答案。如果要在 if 语句中调用函数。这是一个非常具有挑战性的函数,需要很长时间才能获得响应,如何保留返回值?
我用一个例子来解释这个问题:
- 功能
def recursive:
if .... :
return value
else:
return False
递归是一个假设的函数,需要花费大量时间来生成响应,它可以是一个值,也可以只是一个简单的布尔 False。
- 主要
...
if recursive():
...value? (make something with value return)
其他方法
...
if recursive():
value = recursive()
另一种方法将调用该函数 2 次,并且花费的时间太长。
我该如何解决这个问题?
Python 3.8 将添加一个运算符来执行此操作(称为海象运算符 :=
(,但不幸的是,您今天能做的最接近的事情是
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