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

Minahil Noor 2023년1월30일
  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

관련 문장 - Python Recursion