Cómo obtener e incrementar la máxima profundidad de recursividad en la Python
-
Usar la función
getrecursionlimit()
para obtener la máxima profundidad de recursividad en Python -
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