我已經看到了問題的功能測試。我有一個表達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