Это какой-то код, который ведет себя необычно. Это упрощенная версия поведения, которое я написал. Это все равно покажет странное поведение, и у меня возникли некоторые конкретные вопросы о том, почему это происходит.
Я использую 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?
Спасибо за вашу помощь.