UnboundLocalError 에러와 예외 처리 방법
UnboundLocalError
는 지역 변수(Local variable)를 참조하려고 했으나, 해당 변수가 아직 할당되지 않은 경우에 발생하는 예외입니다.
파이썬에서 함수 내부에서 선언된 변수는
지역 변수
로 간주됩니다. 함수 외부에 같은 이름의 변수가 선언되어 있어도 함수 내부에서 변수를 참조할 때는 지역 변수로 간주됩니다.
counter = 0 # 전역 변수 def increase_counter(): # UnboundLocalError 발생 counter += 1 return counter print(increase_counter())
위 코드 예시에서 함수 외부에 선언된 counter
전역(Global) 변수와 increase_counter
함수 내부의 counter
지역(Local) 변수는 서로 다른 변수로 인식됩니다.
따라서 함수 내부에서 counter
변수를 참조하려고 하면, 해당 변수가 아직 할당되지 않았기 때문에 UnboundLocalError
예외가 발생합니다.
위 예시에서 counter
변수를 전역 변수로 사용하려면 global
키워드를 사용해야 합니다.
counter = 0 # 전역 변수 def increase_counter(): # 전역 변수로 사용 global counter counter += 1 return counter print(increase_counter())
위 코드에서 increase_counter
함수 내 counter
변수를 전역 변수로 사용하기 위해 global
키워드를 사용했습니다.
UnboundLocalError 예외를 처리하려면 어떻게 해야 할까요?
가장 일반적인 방법으로는 try-except
문을 사용해 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
예외는 주로 전역 변수와 지역 변수를 혼동하여 발생하는 경우가 많으므로, 함수 내부에서 변수를 참조할 때 주의해야 합니다.
UnboundLocalError는 함수 내부에서 초기화되지 않은 지역 변수를 참조할 때 발생한다.
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
실행 결과