더북(TheBook)

그러나 이 함수를 실행해보면 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 # 틀렸음

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