Shtrix's blog

By Shtrix, 13 years ago, In Russian
Недавно занялся изучением питона и уперся в проблему с переполнением стека.

Случай нулевой, достигается придел рекурсивных вызовов:
import sys
def rec(x):
    print x,
    if x < 1000:
        rec(x + 1)
rec(0)

Случай первый, переполнения стека не наблюдается, полет в норме:
import sys
sys.setrecursionlimit(2000000)
def rec(x):
    print x,
    if x < 1000:
        rec(x + 1)
rec(0)

Случай второй, достигается переполнение стека:
import sys
sys.setrecursionlimit(2000000)
def rec(x):
    print x,
    if x < 10000:
        rec(x + 1)
rec(0)

После долгого поиска я так и не нашел никаких способов увеличения стека. Жизнь с максимумом в 10 тысяч рекурсивных вызвов меня сильно удручает. Соответственно, вопрос, кто-нибудь знает какие-то хаки для глубокой рекурсии в питоне?
  • Vote: I like it
  • +1
  • Vote: I do not like it