我已经看到了问题的功能测试。我有一个表达Python的分配和使用与此类似,但并不完全相同的elif
if foo == ....
return -1
elif myFunction(bar) != -1:
return myFunction(bar)
elif ...
我不想计算两次。如果是单纯的if
,我可以做
temp = myFunction(bar)
if temp != -1
return temp
但是这样做有elif
将导致temp
不必要的计算,如果我们跟着初使if
。
我可以使用
if ...
else
temp = myFunction(bar)
if temp != -1:
return temp
elif ...
看到一个解决方案,但现在开始变得更加难看。有没有更好的方法来完成这一点?
如果你不想叫'myFunction的(酒吧)'两次,如果你只能/要检查你的'foo'后调用它,那么就比使用一个中间变量来存储结果没有别的办法,没有魔法来解决这个基本逻辑问题:-)。我认为一个解决方案在反映正确的逻辑时并不难看。你只需要小心放置最后一个'elif'的位置。 –
但是'if'(至少在本例中)含有'反正return',所以你可以* *只使用一个临时的价值,并开始一个新的'if'块。 – Volatility