2016년 9월 3일 토요일

python에서 실행되는 순서

아래와 같은 코드가 있을 때,

total = 0

def add_total(n):
    total += n

add_total(1)
add_total(10)

print(total)


에러가 발생한다.

왜냐하면 이 코드가 실행되면 먼저 def 로 정의된 함수가 먼저 실행이 되는데
total 이라는 변수는 아직 정의가 되지 않은 상태에서 참조 되었기 때문이다.

total 이라는 변수가 위쪽에 위치하기 때문에 global variable 로 먼저 선언되어 있다고 생각할 수 있지만 실행은 def 가 먼저 되기 때문에 에러가 발생한다.

댓글 없음:

댓글 쓰기