के साथ अजीब कोशिश-छोड़ने-अंत-व्यवहार व्यवहार यह कुछ कोड है जो असाधारण व्यवहार कर रहा है। यह मैंने जो व्यवहार लिखा है उसका सरलीकृत संस्करण है। यह अभी भी अजीब व्यवहार का प्रदर्शन करेगा और मेरे पास कुछ विशिष्ट प्रश्न थे कि यह क्यों हो रहा है।रिटर्न स्टेटमेंट्स
मैं जब आप इस स्क्रिप्ट को चलाने अजगर 2.6.6 का उपयोग कर रहा है Windows 7.
def demo1():
try:
raise RuntimeError,"To Force Issue"
except:
return 1
else:
return 2
finally:
return 3
def demo2():
try:
try:
raise RuntimeError,"To Force Issue"
except:
return 1
else:
return 2
finally:
return 3
except:
print 4
else:
print 5
finally:
print 6
if __name__ == "__main__":
print "*** DEMO ONE ***"
print demo1()
print "****************"
print
print "*** DEMO TWO ***"
print demo2()
print "****************"
पर, यह प्रिंट होगा:
*** DEMO ONE ***
3
****************
*** DEMO TWO ***
6
3
****************
डेमो एक क्यों लौटा रहा है 3 के बजाय 1? 6 डब्ल्यू/4 या 5 प्रिंट करने के बजाय डेमो दो प्रिंटिंग 6 क्यों है?
आपकी मदद के लिए धन्यवाद।
दूसरे उदाहरण में 5 प्रिंट क्यों नहीं है? यह अभी भी अच्छी तरह से समझाया नहीं है मुझे लगता है। रिटर्न एक का उत्तर दिया जाता है लेकिन दूसरे उदाहरण में 5 क्यों नहीं –
प्रिंट करता है ओह मुझे लगता है कि मैंने इसे शुरुआती प्रयास में वापसी के बारे में बताया है, यह तुरंत अंततः बाहरी –
पर कूदने का कारण बनता है, क्योंकि 'आखिरकार' ब्लॉक ** हमेशा ** रन –