변수 범위와 중첩 함수
파이썬에서는 변수가 어디에서 정의되었는지가 그 변수에 접근할 수 있는 범위를 결정합니다. 이를 범위(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 키워드 | 함수 내부에서 전역 변수를 수정할 수 있게 해줌 |
중첩 함수 | 다른 함수 안에 정의된 함수 |
Quiz
0 / 1
Python에서 함수 내부에서 전역 변수를 수정하는 올바른 방법은 무엇인가요?
함수 내부에서 해당 변수를 지역 변수로 선언한다.
변수 앞에 local 키워드를 사용한다.
변수 앞에 global 키워드를 사용한다.
변수를 함수 내부에서 정의한다.
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
코드 실행
코드 생성
실행 결과