PYTHON

[파이썬 에러] UnboundLocalError 문제 해결

미스털이 사용자 2021. 9. 9. 11:20
반응형

UnboundLocalError: local variable 변수이름 referenced before assignment 발생!

원인 : for, while, if 안에서 선언된 변수를 바깥에서 쓸려고 할 때 생기는 문제

 

            if len(old_rank) == 0 :
                rank_change_str = "●"
            else :
                rank_change = old_rank[code] - self.new_rank[code]
                rank_change_str = ""
                if(rank_change > 0) :
                    rank_change_str = "▲" + str(abs(rank_change))
                elif rank_change < 0 :
                    rank_change_str = "▼" + str(abs(rank_change))
                else :
                    rank_change_str = "●"

            if abs(rank_change) > 21 : ###여기서 문제 발생
                speed_idx+=1

 

해결 : 위 코드를 보면 rank_change라는 변수가 if문 바깥에서 선언되어야만 아래에서 호출할 때 문제가 없어진다.

그래서 맨 위에 rank_change라는 변수를 선언하면 이곳에 나타난 모든 조건문에서 문제없이 사용 가능하다.

 

            rank_change = 0 ### 이곳에서 모든 조건문에서 문제없이 사용하도록 선언해주면 해결완료
            if len(old_rank) == 0 :
                rank_change_str = "●"
            else :
                rank_change = old_rank[code] - self.new_rank[code]
                rank_change_str = ""
                if(rank_change > 0) :
                    rank_change_str = "▲" + str(abs(rank_change))
                elif rank_change < 0 :
                    rank_change_str = "▼" + str(abs(rank_change))
                else :
                    rank_change_str = "●"

            if abs(rank_change) > 21 : ###여기서 문제 발생=>문제없어짐
                speed_idx+=1
반응형