在if语句中仅调用一次函数(pythonic方式)

时间:2019-06-26 15:56:57

标签: python-3.x

在编码时,我经常具有这种代码结构。

某些函数返回并阻塞,如果该对象不是None,那么我将使用它

如果我不想两次调用该函数(这很昂贵并且可能会有副作用),则必须使用一个临时变量来保留结果:

temp = get_object()
if temp:
    do_something_with_object(temp)

有没有更多的pythonic方式来编写此代码?

1 个答案:

答案 0 :(得分:2)

在python 3.8之前,还没有明确的解决方案。在Python 3.8中,将有一个称为Assignment expressions又称为:=分配(what's new in python 3.8)的新功能。

这基本上意味着您可以在代码中做到这一点:

if (n := get_object()):
    do_something(n)

链接到PEP-572