변수 범위와 중첩 함수
파이썬에서는 변수가 어디에서 정의되었는지가 그 변수에 접근할 수 있는 범위를 결정합니다. 이를 범위(scope)
라고 합니다.
함수는 중첩될 수도 있습니다. 즉, 한 함수 안에 다른 함수를 정의할 수 있습니다.
1. 지역 범위 vs 전역 범위 (Local vs Global Scope)
함수 내부에서 정의된 변수는 지역 변수(local variable)
입니다. 함수가 실행되는 동안에만 존재합니다.
어떤 함수에도 속하지 않고 정의된 변수는 전역 변수(global variable)
이며, 스크립트 전반에서 사용할 수 있습니다.
지역 vs 전역 범위
message = "전역 범위에서 온 인사"
def show_message():
message = "지역 범위에서 온 인사"
print(message)
show_message()
print(message)
- 함수 안에서는 새로운
message
변수가 생성됩니다. - 전역 변수는 변경되지 않습니다.
2. global
키워드 사용
함수 안에서 전역 변수를 수정하려면 global
키워드를 사용합니다.
global 키워드 사용
counter = 0
def increase():
global counter
counter += 1
increase()
print("카운터:", counter)
global
없이 쓰면, 파이썬은counter
를 새로운 지역 변수로 간주합니다.global
을 사용하면 함수 밖의 변수를 업데이트합니다.
3. 중첩 함수
함수는 다른 함수 안에 정의될 수 있습니다.
내부 함수는 외부 함수에만 속합니다.
중첩 함수
def outer():
print("외부 함수")
def inner():
print("내부 함수")
inner()
outer()
inner()
는outer()
내부에서만 호출할 수 있습니다.- 중첩 함수는 로직을 정리하고 동작을 캡슐화하는 데 도움이 됩니다.
요약
개념 | 설명 |
---|---|
지역 범위 | 함수 내부의 변수 |
전역 범위 | 모든 함수 밖에서 정의된 변수 |
global 키워드 | 함수 내부에서 전역 변수를 수정할 수 있게 해줌 |
중첩 함수 | 다른 함수 안에 정의된 함수 |
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!