Cómo obtener e incrementar la máxima profundidad de recursividad en la Python

  1. Usar la función getrecursionlimit() para obtener la máxima profundidad de recursividad en Python
  2. Use la función setrecursionlimit() para establecer la máxima profundidad de recursividad en Python

Este artículo introducirá métodos para obtener e incrementar la máxima profundidad de recursividad en Python con las funciones getrecursionlimit() y setrecursionlimit().

Usar la función getrecursionlimit() para obtener la máxima profundidad de recursividad en Python

¿Qué es la recursión? La recursividad es el proceso de repetición.

En Python, tenemos algunos límites para las funciones recursivas. Nos dice cuántas veces se repetirá la función. Podemos usar la función getrecursionlimit() para obtener la máxima profundidad de recursividad. La sintaxis correcta es:

sys.getrecursionlimit()

Este método no acepta parámetros.

El siguiente programa muestra cómo podemos usar este método para obtener el máximo límite de recursividad en Python.

import sys
print(sys.getrecursionlimit())

Resultado:

3000

Use la función setrecursionlimit() para establecer la máxima profundidad de recursividad en Python

Si la profundidad de recursividad excede la máxima profundidad de recursividad por defecto en Python, lanzará un RecursionError. Veamos el siguiente ejemplo.

def Test(i):
    if i > 0:
        return Test(i-1)+1
    else:
        return 0

Test(5000)

Resultado:

Traceback (most recent call last):
  File "C:/Test/test.py", line 7, in <module>
    Test(5000)
  File "C:/Test/test.py", line 3, in Test
    return Test(i-1)+1
  File "C:/Test/test.py", line 3, in Test
    return Test(i-1)+1
  File "C:/Test/test.py", line 3, in Test
    return Test(i-1)+1
  [Previous line repeated 1021 more times]
  File "C:/Test/test.py", line 2, in Test
    if i > 0:
RecursionError: maximum recursion depth exceeded in comparison

Necesitamos aumentar la máxima profundidad de recursividad para resolver el problema anterior. Usamos la función setrecursionlimit() para establecer el límite de recursividad. La sintaxis correcta para usar esta función es la siguiente:

sys.setrecursionlimit(limit)

Este método sólo acepta un parámetro. El detalle de su parámetro es el siguiente:

Parámetro Descripción
limit obligatorio Es el límite que queremos establecer.

El programa a continuación muestra cómo podemos usar este método para establecer el límite de recursividad en Python.

import sys
sys.setrecursionlimit(5000)
print(sys.getrecursionlimit())

Resultado:

5000