Задать вопрос

Можно ли получить глубину рекурсии?

Могу ли я узнать глубину рекурсии из функции?
Например, мне нужно чтобы если глубина рекурсии приближалась к лимиту она завершалась.
  • Вопрос задан
  • 632 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
drygdryg
@drygdryg
Python-разработчик
Регулировать глобальный лимит рекурсии можно с помощью соответствующих функций из модуля os:
import sys
print(sys.getrecursionlimit())  # Получить текущий лимит рекурсии
sys.setrecursionlimit(1500)  # Установить лимит рекурсии в 1500


Внутри отдельной функции можно ограничить количество рекурсивных вызовов с помощью специального параметра-счётчика, например, так (LIMIT не должен превышать глобальный лимит рекурсии):
LIMIT = 1500


def test(..., calls=0):
    ...
    if calls >= LIMIT:
        return
    return test(..., calls=calls + 1)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ketovv
@ketovv
Питонист
Что-то вроде такого
def recursion_func(..., level=0):
   ...
   recursion_func(..., level=level+1)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽