그러나 이 함수를 실행해보면 been_called의 값이 바뀌지 않은 것을 알 수 있다. 문제는 example2에서 새로운 지역 변수로 been_called를 생성한다는 점이다. 지역 변수는 함수가 끝나면 사라지므로 전역 변수에 어떤 영향도 주지 못한다.
함수 안에서 전역 변수를 재할당하려면 전역 변수라고 선언(declare)하고 사용해야 한다.
been_called = False
def example2():
global been_called
been_called = True
global 문은 인터프리터에 “이 함수 안에서 been_called라고 얘기하면 그건 지역 변수가 아니라 전역 변수다”라고 얘기해주는 것이다.
다음 예제는 전역 변수를 업데이트하려 한다.
count = 0
def example3():
count = count + 1 # 틀렸음