관리 메뉴

Life goes slowly...

[Python] 파이썬 recursive function 재귀 함수 본문

프로그래밍/Python

[Python] 파이썬 recursive function 재귀 함수

빨강소 2020. 8. 9. 12:28
728x90
반응형

파이썬 프로그래밍 재귀 함수(Recursive Function)

파이썬 프로그래밍 함수 안에서 자기 자신을 호출하는 함수
recursive function 재귀 함수는 함수 안에서 자기 자신을 호출하는 함수를 말합니다.
선언한 함수가 호출자이자 동시에 함수의 피호출자가 되어서 반복에 반복에 반복을 지속적으로 하는 재귀함수를 말합니다.

 

def recursive_function():
      print('call recursive function')
      recursive_function()

recursive_function()
call recursive function
call recursive function
......
recursive_function()
RuntimeError: maximum recursion depth exceeded

 

파이썬 프로그래밍이 무한 반복으로 실행이 되는 것 같지만 어느 순간 에러를 발생하면서 종료가 되며 호출 가능한 최대 깊이 및 반복 깊이를 초과하였다고 에러 내용을 확인할 수 있습니다.
이처럼 Python 프로그래밍에서는 재귀 함수를 이용한 반복하는 횟수가 한정되어 있습니다.
재귀 함수의 편리한 점도 있지만 성능이 중요한 경우에는 재귀 함수 대신 반복문을 사용하는 것이 프로그래밍상 안전하며, 그리고 재귀 함수를 사용 시에는 종료 조건을 선언하여 주는것이 좋습니다.

 

def recursive_function(cnt):
    if cnt == 0:
        return
    
    print('Hello, world!', cnt)
    
    cnt -= 1     
    recursive_function(cnt)  
 
recursive_function(5) 

('Hello, world!', 5)
('Hello, world!', 4)
('Hello, world!', 3)
('Hello, world!', 2)
('Hello, world!', 1)

 

예시처럼 반복도중에 종료 조건을 선언해야만 stack overflow를 방지할 수 있습니다.

728x90
반응형
Comments