Странное поведение Try-Except-Else-Наконец с операторами Return
Это некоторый код, который ведет себя странно. Это упрощенная версия поведения, которое я написал. Это все еще продемонстрирует странное поведение, и у меня были некоторые конкретные вопросы о том, почему это происходит.
Я использую Python 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
Результаты:
>>> print demo1()
3
>>> print demo2()
6
3
Why is demo one returning 3 instead of 1?
Why is demo two printing 6 instead of printing 6 w/ 4 or 5?