如何在 if 语句中调用函数并保存返回值



我陷入了一个简单的问题,我找不到答案。如果要在 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

相关内容

  • 没有找到相关文章

最新更新