Это какой-то код, который ведет себя необычно. Это упрощенная версия поведения, которое я написал. Это все равно покажет странное поведение, и у меня возникли некоторые конкретные вопросы о том, почему это происходит.
Я использую 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
if __name__ == "__main__":
print "*** DEMO ONE ***"
print demo1()
print "****************"
print
print "*** DEMO TWO ***"
print demo2()
print "****************"
Когда вы запустите этот script, он напечатает:
*** DEMO ONE ***
3
****************
*** DEMO TWO ***
6
3
****************
Почему демо возвращается 3 вместо 1? Почему демо две печати 6 вместо печати 6 Вт /4 или 5?
Спасибо за вашу помощь.