在编码时,我经常具有这种代码结构。
某些函数返回并阻塞,如果该对象不是None
,那么我将使用它
如果我不想两次调用该函数(这很昂贵并且可能会有副作用),则必须使用一个临时变量来保留结果:
temp = get_object()
if temp:
do_something_with_object(temp)
有没有更多的pythonic方式来编写此代码?
答案 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。