Почему этот скрипт Python создает бесконечный цикл? (рекурсия)

Почему/как это создает, казалось бы, бесконечный цикл? Неправильно я предположил, что это вызовет некоторую форму ошибки типа переполнения стека.

i = 0

def foo () :
    global i

    i += 1
    try :
        foo()
    except RuntimeError :
        # This call recursively goes off toward infinity, apparently.
        foo()

foo()

print i
6
задан rectangletangle 27 June 2012 в 08:56
поделиться