3.8 변수와 인자는 지역 범위다
함수 안에 변수를 생성하면 변수는 지역(local) 범위다. 즉, 변수는 함수 안에서만 존재하는 것이다. 예를 들면
def cat_twice(part1, part2):
cat = part1 + part2
print_twice(cat)
cat_twice 함수는 인수 두 개를 받아서 하나로 연결하고 결과를 두 번 출력한다. 이 함수를 사용하는 예제를 보자.
>>> line1 = 'Bing tiddle '
>>> line2 = 'tiddle bang.'
>>> cat_twice(line1, line2)
Bing tiddle tiddle bang.
Bing tiddle tiddle bang.
cat_twice 함수가 종료될 때 cat 변수로 파괴된다. cat 변수를 출력하려고 하면 예외가 발생한다.
>>> print(cat)
NameError: name 'cat' is not defined
인자도 지역 범위다. 예를 들어 print_twice 바깥에서는 bruce를 이용할 수 없다.