본문으로 건너뛰기
실습하기

변수 범위와 중첩 함수

파이썬에서는 변수가 어디에서 정의되었는지가 그 변수에 접근할 수 있는 범위를 결정합니다. 이를 범위(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 강의를 등록해 주세요!