Como Obter e Aumentar a Profundidade Máxima de Recurssão em Python

  1. Utilize a função getrecursionlimit() para obter a profundidade máxima de recursividade em Python
  2. 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