[Troubleshooting, debugging] UnboundLocalError: local variable 'VarName' referenced before assignment 에러

2023. 2. 21. 16:08프로그래밍/파이썬

반응형

0. 클론코딩을 진행하며 Unittest를 진행하다보니, 위 에러가 뜬 것을 확인하였다. 대충 에러 메시지에서 파악한 것으로는, 지역변수를 (반환값으로) 사용/호출하려면 그전에 한번 할당 혹은 초기화를 해줘야 하는데, 그 부분이 안되었다는 뜻이다.

 

1. 내가 짠 코드가 아니다보니, 참고하였던 코드와 함수단위로 1:1 비교를 진행하였고, 이를 통해서는 찾지 못하였다. 👀

    (눈빠지는줄 알았다. 연습용 코드가 아니라 실제 서비스 구현을 위한 코드다 보니...)

 

2. 교재에 참고코드에 대한 github reference 주소가 존재하였고, unittest단의 기능코드와, 실제 기능코드를 차례대로 복사/붙여넣기 및 중복방지를 위한 제거/숨기기를 통해 체크해보았으며, unittest가 아닌 실제 기능코드를 대체 붙여넣기 하였을 때 정상적으로 작동됨을 확인하여, 기능코드 단에서 문제가 일어난 것을 확인할 수 있었다. 

 

3. 결정적인 에러의 원인이다. 반환을 받고싶었던 리스트 변수가 있었는데, 이 변수가 while 문 내부에서 초기화/할당이 이루어졌기 때문에, while loop 바깥에서는 이를 호출하지 못했었던 것이다. while 밖으로 나가지 못하고(들여쓰기를 제대로 확인하지 못했다.😢)계속해서 클론코딩을 했었던게 문제였다.

 

누군가는, 결론만 얘기하면 되는거 아니냐고 할 수 있는데, 처음부터 이 포인트를 찾아내는 것이 쉽지 않다고 느꼈기 때문에, 나의 의식과 논리의 흐름을 기록하였다. 100% 일치하여 적용되지는 않겠지만, 흐름에 맞춰 문제를 해결하였으면 좋겠다.

 

반응형