2010-08-02 23 views
9

मैं आज एक ब्लॉग में इस दिलचस्प आइटम पाया:ऐसा क्यों करता है जो यह करता है?

def abc(): 
    try: 
     return True 
    finally: 
     return False 

print "abc() is", abc() 

किसी को भी बता सकते हैं कि क्यों यह यह क्या करता है?

धन्यवाद, के.आर.

+0

हालांकि पूरी तरह से वही नहीं है, इसकी अच्छी चर्चा यहां पाई जा सकती है: http://stackoverflow.com/questions/1611561/python-error-handling-with-try-finally – dave

+0

-1: किया http://docs.python.org/reference/compound_stmts.html#the-try-statement –

उत्तर

10

अंत में ब्लॉक एक return या break बयान त्याग दिया जाता है

यह कोशिश करने के लिए python docu

+0

में अंत में बयान को देखने का प्रयास न करें, आपने मुझे हराया :) –

1

जाओ विस्तार से समझाया गया है से परिणाम ब्लॉक की कोशिश शामिल है, तो कथन क्षेत्र:

http://docs.python.org/reference/compound_stmts.html

आखिरकार कथन अभी भी निष्पादित है। हालांकि वास्तव में दिलचस्प स्थिति। मैंने कुछ नया सीखा। :)

0

दस्तावेज़ों के लिए सूचक के लिए धन्यवाद। मैं वहाँ देखने के बारे में सोचने के लिए 'वापसी सच' से पहले नहीं मिल सका। दस्तावेज की

भाग पढ़ता है:

तो अंत में मौजूद है, यह एक 'सफाई' हैंडलर निर्दिष्ट करता है। कोशिश खंड मार डाला, है ...

जो पता चलता है कि यह सच है वापसी निष्पादित किया जाता है। हालांकि, बाद में स्पष्ट किया जाता है:

जब एक वापसी, तोड़ने या बयान जारी रखने के लिए कोशिश सुइट में एक कोशिश ... अंत में बयान के में मार डाला है, अंत में खंड भी रास्ते पर 'मार डाला जाता है आउट। '

जो मनाया व्यवहार बताता है।

किस तरह का दिमाग इस तरह के कुछ कोड को पहले स्थान पर सोचता है? ;)

संबंधित मुद्दे