Перейти до вмісту
Винятки PythonПомилка
RecursionError

RecursionError

Перевищено максимальну глибину рекурсії.

python

Що спричиняє цю помилку

Функція викликала саму себе (прямо або опосередковано) занадто багато разів, не досягнувши базового випадку. Стандартний ліміт рекурсії Python — 1000. Безкінечна рекурсія, глибоко вкладені структури даних або алгоритми з надмірною глибиною рекурсії викликають цю помилку.

Як виправити

Додайте або виправте базовий випадок у рекурсивній функції. Перетворіть глибоку рекурсію на ітерацію за допомогою стека. Збільшіть ліміт через sys.setrecursionlimit() (обережно — може спричинити крах Python). Використовуйте functools.lru_cache для мемоізації.

Приклад

def f(): f()
f()  # RecursionError: maximum recursion depth exceeded
Офіційна документація

Пов'язані коди помилок