파이썬에서 최대 재귀 깊이를 얻고 늘리는 방법

  1. getrecursionlimit()함수를 사용하여 Python에서 최대 재귀 깊이 얻기
  2. setrecursionlimit()함수를 사용하여 Python에서 최대 재귀 깊이 설정

이 기사에서는getrecursionlimit()setrecursionlimit()함수를 사용하여 Python에서 최대 재귀 깊이를 가져오고 늘리는 방법을 소개합니다.

getrecursionlimit()함수를 사용하여 Python에서 최대 재귀 깊이 얻기

재귀 란 무엇입니까? 재귀는 반복의 과정입니다.

Python에는 재귀 함수에 대한 몇 가지 제한이 있습니다. 기능이 몇 번 반복되는지 알려줍니다. 최대 재귀 깊이를 얻기 위해 getrecursionlimit() 함수를 사용할 수 있습니다. 올바른 구문은 다음과 같습니다.

sys.getrecursionlimit()

이 메소드는 매개 변수를 허용하지 않습니다.

아래 프로그램은이 방법을 사용하여 파이썬에서 최대 재귀 제한을 얻는 방법을 보여줍니다.

import sys
print(sys.getrecursionlimit())

산출:

3000

setrecursionlimit()함수를 사용하여 Python에서 최대 재귀 깊이 설정

재귀 깊이가 Python의 기본 최대 재귀 깊이를 초과하면RecursionError가 발생합니다. 아래 예를 보겠습니다.

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

Test(5000)

산출:

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

위의 문제를 해결하려면 최대 재귀 깊이를 늘려야합니다. setrecursionlimit() 함수를 사용하여 재귀 제한을 설정합니다. 이 함수를 사용하는 올바른 구문은 다음과 같습니다.

sys.setrecursionlimit(limit)

이 메소드는 하나의 매개 변수 만 허용합니다. 매개 변수의 세부 사항은 다음과 같습니다.

매개 변수 기술
limit 필수 우리가 설정하고 싶은 한계입니다.

아래 프로그램은이 방법을 사용하여 Python에서 재귀 제한을 설정하는 방법을 보여줍니다.

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

산출:

5000