더북(TheBook)

이 예제를 실행하면

UnboundLocalError: local variable 'count' referenced before assignment

파이썬은 count가 지역 변수라고 가정하고, 해당 변수를 쓰기 전에 읽어야 한다고 가정한다. 이에 대한 해법은 count를 전역 변수로 선언하는 것이다.

def example3():

global count

count += 1

전역 변수가 변경 가능한 값을 참조한다면 변수를 전역으로 선언하지 않아도 값을 수정할 수 있다.

known = {0:0, 1:1}

 

def example4():

known[2] = 1

따라서 전역 리스트나 사전의 원소를 추가, 제거, 대체할 수 있다. 하지만 변수를 재할당하고 싶다면 전역으로 선언해야 한다.

def example5():

global known

known = dict()

전역 변수는 유용하지만, 전역 변수가 많아지고 수정도 자주 한다면 프로그램을 디버그하기 어려워질 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.