파이썬에서 최대 재귀 깊이를 얻고 늘리는 방법
Minahil Noor
2023년1월30일
이 기사에서는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