Page 38 - 파이썬으로 배우는 컴퓨팅사고 도서 미리보기
P. 38
CHAPTER 9? 기술(Technology) 209
실행결과
UnboundLocalError: local variable ‘gv’ referenced before assignment 오류
위의 프로그램들에서 알 수 있듯이 전역변수는 함수 내에서 사용할 때 주의를 해야 한다.
이러한 혼란이나 오류 발생의 가능성을 줄이기 위하여, 그리고 전역변수의 값을 변경하는
경우에는 함수 내부에서 해당 전역변수를 global 예약어로 먼저 선언해야 한다.
gv = 3 # 전역변수 gv 선언
def func1(): # 전역변수 gv 선언
global gv # 지역변수 lv1 선언
lv1 = 1 # 지역변수 lv1의 값, 전역변수 gv의 값
lv1 = lv1 + gv # 전역변수 gv의 값을 1로 변경
gv = 1 # 지역변수 lv1의 값, 전역변수 gv의 값
print(lv1, gv)
def func2(pv): # 매개변수 pv 선언
lv2 = pv # 지역변수 lv2 선언, 매개변수 pv의 값
print(lv2) # 지역변수 lv2의 값
func1() # 전역변수 gv의 값
func2(2)
print(gv)
실행결과
41
2
1