이 예제를 실행하면
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()
전역 변수는 유용하지만, 전역 변수가 많아지고 수정도 자주 한다면 프로그램을 디버그하기 어려워질 수 있다.