본문 바로가기

나의 플랫폼/Python

[Python] UnboundLocalError: local variable referenced before assignment

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

UnboundLocalError: local variable referenced before assignment

위와 같은 오류는 아래 내용이 원인이다.

Python은 전역 변수 데이터를 확인 할 수는 있지만, 수정할 수는 없다.




global_var = 10

class LocalClass:

def global_add(self, num):
print(global_var + num)

localclass = LocalClass()
localclass.global_add(100)

위 소스라면 문제 없이 110이 출력이 됩니다.

하지만 아래와 같이 할 경우 에러가 출력이 됩니다.



global_var = 10

class LocalClass:

def global_add(self, num):
global_var = global_var + num
print(global_var)

localclass = LocalClass()
localclass.global_add(100)

global_var 이라는 전역 변수 값을 수정하고자 했기 때문에 발생 하는 에러 입니다.

만약, 이 전역 변수를 수정하고 싶을 경우 global로 정의를 해주시면 됩니다.



global_var = 10

class LocalClass:

def global_add(self, num):
global global_var
global_var = global_var + num
print(global_var)

localclass = LocalClass()
localclass.global_add(100)

참고하세요.