지역변수임을 확인하기 위해 rent() 함수 안에 값 20을 넣어 glasses 변수를 정의하고 다시 실행해 보겠습니다.
glasses = 10
def rent(people):
glasses = 20 # 변수 정의 추가
glasses = glasses - people
print("[함수 내부] 남은 3D 안경 개수: {0}".format(glasses))
print("전체 3D 안경 개수: {0}".format(glasses))
rent(2)
print("남은 3D 안경 개수: {0}".format(glasses))
실행결과 |
전체 3D 안경 개수: 10 [함수 내부] 남은 3D 안경 개수: 18 남은 3D 안경 개수: 10 |
이번에는 오류가 나지 않습니다. 함수 안에서는 glasses 변수에 20을 넣은 뒤 안경 대여 관객 수인 2를 빼서 18로 줄어들었습니다. 다만, 전체 안경 개수와 남은 안경 개수는 10으로 변함이 없네요. 이는 함수 안에서 정의한 glasses 변수가 지역변수라서 그렇습니다. 전역 공간에 만들어진 glasses 변수와 이름은 같지만, 서로 다른 변수인 셈이죠. 그래서 전역변수인 glasses의 값에는 아무런 영향을 미치지 않았습니다.