학습 자료
변수 범위와 중첩 함수
파이썬에서는 변수가 어디에서 정의되었는지가 그 변수에 접근할 수 있는 범위를 결정합니다. 이를 범위(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 키워드 | 함수 내부에서 전역 변수를 수정할 수 있게 해줌 |
| 중첩 함수 | 다른 함수 안에 정의된 함수 |
이 챕터의 강의 · 파이썬 프로그래밍 복습
- 1. 변수와 자료형
- 2. 표현식과 산술
- 3. 문자열 다루기
- 4. 파이썬의 리스트
- 5. 리스트 메서드와 슬라이싱
- 6. 튜플과 집합
- 7. 딕셔너리 - 키와 값
- 8. 딕셔너리 메서드와 중첩
- 9. 조건문 (if, elif, else)
- 10. 반복문 - for와 while
- 11. 제어 흐름 & 자료 구조 정리
- 12. 선택형 퀴즈
- 13. 반복 제어문 (break, continue, pass)
- 14. 재사용 가능한 코드를 만드는 함수
- 15. 함수 인수와 반환값
- 16. 변수 범위와 중첩 함수
- 17. try/except로 예외 처리하기
- 18. 파일 읽기와 쓰기
- 19. CSV 파일 파싱
- 20. 내장 모듈 사용하기 (math, random, datetime)
- 21. 외부 모듈 가져오기
- 22. 빈칸 채우기 퀴즈
Quiz
0 / 1
Python에서 함수 내부에서 전역 변수를 수정하는 올바른 방법은 무엇인가요?
함수 내부에서 해당 변수를 지역 변수로 선언한다.
변수 앞에 local 키워드를 사용한다.
변수 앞에 global 키워드를 사용한다.
변수를 함수 내부에서 정의한다.
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말