가이드라인

UnboundLocalError 에러와 예외 처리 방법

UnboundLocalError지역 변수(Local variable)를 참조하려고 했으나, 해당 변수가 아직 할당되지 않은 경우에 발생하는 예외입니다.

파이썬에서 함수 내부에서 선언된 변수는 지역 변수로 간주됩니다. 함수 외부에 같은 이름의 변수가 선언되어 있어도 함수 내부에서 변수를 참조할 때는 지역 변수로 간주됩니다.


UnboundLocalError 발생 예시
counter = 0 # 전역 변수 def increase_counter(): # UnboundLocalError 발생 counter += 1 return counter print(increase_counter())

위 코드 예시에서 함수 외부에 선언된 counter 전역(Global) 변수와 increase_counter 함수 내부의 counter 지역(Local) 변수는 서로 다른 변수로 인식됩니다.

따라서 함수 내부에서 counter 변수를 참조하려고 하면, 해당 변수가 아직 할당되지 않았기 때문에 UnboundLocalError 예외가 발생합니다.


위 예시에서 counter 변수를 전역 변수로 사용하려면 global 키워드를 사용해야 합니다.

UnboundLocalError 해결 방법
counter = 0 # 전역 변수 def increase_counter(): # 전역 변수로 사용 global counter counter += 1 return counter print(increase_counter())

위 코드에서 increase_counter 함수 내 counter 변수를 전역 변수로 사용하기 위해 global 키워드를 사용했습니다.


UnboundLocalError 예외를 처리하려면 어떻게 해야 할까요?

가장 일반적인 방법으로는 try-except 문을 사용해 UnboundLocalError 예외를 처리할 수 있습니다.

UnboundLocalError 예외 처리
counter = 0 # 전역 변수 def increase_counter(): try: counter += 1 except UnboundLocalError as e: print(f'UnboundLocalError 발생: {e}') return counter print(increase_counter())

위 코드에서 increase_counter 함수 내부에서 counter 변수를 참조할 때 UnboundLocalError 예외가 발생하면, except 블록에서 예외를 처리하고 메시지를 출력합니다.

UnboundLocalError 예외는 주로 전역 변수와 지역 변수를 혼동하여 발생하는 경우가 많으므로, 함수 내부에서 변수를 참조할 때 주의해야 합니다.

Mission
0 / 1

UnboundLocalError는 함수 내부에서 초기화되지 않은 지역 변수를 참조할 때 발생한다.

O
X

가이드라인

AI 튜터

배포

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

실행 결과