Como Obter e Aumentar a Profundidade Máxima de Recurssão em Python
-
Utilize a função
getrecursionlimit()
para obter a profundidade máxima de recursividade em Python -
Utilize a função
setrecursionlimit()
para definir a profundidade máxima de recursão em Python
Este artigo irá introduzir métodos para obter e aumentar a profundidade máxima de recursão em Python com as funções getrecursionlimit()
e setrecursionlimit()
.
Utilize a função getrecursionlimit()
para obter a profundidade máxima de recursividade em Python
O que é a recorrência? A recursividade é o processo de repetição.
Em Python, temos alguns limites para as funções recursivas. Ela nos diz quantas vezes a função se repetirá. Podemos utilizar a função getrecursionlimit()
para obter a profundidade máxima de recorrência. A sintaxe correta é:
sys.getrecursionlimit()
Este método não aceita parâmetros.
O programa abaixo mostra como podemos utilizar este método para obter o limite máximo de recursão em Python.
import sys
print(sys.getrecursionlimit())
Resultado:
3000
Utilize a função setrecursionlimit()
para definir a profundidade máxima de recursão em Python
Se a profundidade de recursão exceder a profundidade máxima de recursão padrão em Python, ela lançará um RecursionError
. Vamos ver o exemplo abaixo.
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
Precisamos aumentar a profundidade máxima de recursão para resolver o problema acima. Utilizamos a função setrecursionlimit()
para definir o limite de recursão. A sintaxe correta para utilizar esta função é a seguinte:
sys.setrecursionlimit(limit)
Este método aceita apenas um parâmetro. O detalhe de seu parâmetro é o seguinte:
Parâmetro | Descrição | |
---|---|---|
limit |
obrigatório | É o limite que queremos estabelecer. |
O programa abaixo mostra como podemos usar este método para definir o limite de recorrência em Python.
import sys
sys.setrecursionlimit(5000)
print(sys.getrecursionlimit())
Resultado:
5000