का उपयोग करके पाइथन असाइनमेंट और फ़ंक्शन का परीक्षण मैंने इस तरह के प्रश्न देखे हैं लेकिन काफी समान नहीं हैं। मेरे पास एक अभिव्यक्ति हैएलिफ
if foo == ....
return -1
elif myFunction(bar) != -1:
return myFunction(bar)
elif ...
मैं दो बार myFunction(bar)
की गणना नहीं करना चाहता हूं। यदि यह बस एक if
थे, मैं
temp = myFunction(bar)
if temp != -1
return temp
कर सकता है हालांकि एक elif
के साथ ऐसा करने temp
के अनावश्यक गणना में परिणाम होगा अगर हम intitial if
पालन करने के लिए थे।
मैं एक
if ...
else
temp = myFunction(bar)
if temp != -1:
return temp
elif ...
का उपयोग कर एक समाधान देख सकते हैं लेकिन यह अब और अधिक बदसूरत बनने के लिए शुरू होता है। क्या इसे पूरा करने का कोई बेहतर तरीका है?
आप 'कॉल करने के लिए myfunction (बार)' दो बार और अगर आप केवल कर सकते हैं नहीं करना चाहते हैं/अपने 'foo' को जांचने के बाद इसे कॉल करना चाहते हैं, फिर परिणाम को स्टोर करने के लिए इंटरमीडिएट वैरिएबल का उपयोग करने का कोई दूसरा तरीका नहीं है। इस मूल तार्किक समस्या को पाने के लिए कोई जादू नहीं है :-)। मुझे लगता है कि एक समाधान बदसूरत नहीं है जब यह सही तर्क को दर्शाता है। आपको बस सावधान रहना होगा कि अंतिम 'एलिफ' कहां रखा जाए। –
लेकिन 'if' (कम से कम उदाहरण में) में' वापसी 'है, तो आप * अस्थायी मान का उपयोग कर सकते हैं और एक नया' if' ब्लॉक शुरू कर सकते हैं। – Volatility