Я сделал небольшую функцию, которая будет фактически измерять предел максимальной рекурсии:
def f(x):
r = x
try:
r = f(x+1)
except Exception as e:
print(e)
finally:
return r
Чтобы узнать, чего ожидать, я проверил:
In [28]: import sys
In [29]: sys.getrecursionlimit()
Out[29]: 1000
Однако
In [30]: f(0)
maximum recursion depth exceeded
Out[30]: 970
Число не фиксировано, всегда около ~ 970 и немного изменяется между разными экземплярами python (например, из командной строки spyder в system cmd).
Обратите внимание, что я использую ipython на python3.
Что происходит? Почему фактический предел я становлюсь ниже значения sys.getrecursionlimit()
?