나의 플랫폼/Python

[Python] UnboundLocalError: local variable referenced before assignment

GsBOB 2018. 5. 10. 11:35

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)

참고하세요.