파이썬 지역변수와 전역변수 이해: 스코프와 실전 활용 완벽 가이드
파이썬 지역변수와 전역변수, 아직도 헷갈리시나요? 이 글 하나로 지역변수와 전역변수의 차이, 선언과 사용법, 스코프(scope) 원리, 실전 예제까지 완벽하게 정리해드립니다. 변수의 범위를 정확히 이해하면 코드의 오류를 줄이고, 유지보수성과 가독성을 높일 수 있습니다.
많은 분들이 "함수 안과 밖에서 같은 이름의 변수를 쓰면 어떻게 될까?", "전역변수와 지역변수는 언제, 왜 구분해야 할까?", "global, nonlocal 키워드는 언제 써야 하지?" 등 다양한 고민을 하시죠. 이 글에서 모든 궁금증을 해결해보세요!
📋 목차
🔍지역변수와 전역변수란?
파이썬에서 변수는 어디서 선언했는지에 따라 지역변수(local variable)와 전역변수(global variable)로 구분됩니다.
- 전역변수: 함수 밖에서 선언, 프로그램 전체에서 접근 가능
- 지역변수: 함수(또는 블록) 내부에서 선언, 해당 함수 내에서만 접근 가능
지역변수는 함수 실행 시 생성되고 종료 시 사라지며, 전역변수는 프로그램이 끝날 때까지 유지됩니다.
한줄 요약: 지역변수=함수 내부, 전역변수=함수 외부에서 선언!
📊파이썬 변수 스코프의 원리
파이썬의 변수 스코프(scope)는 해당 변수가 참조되고 변경될 수 있는 영역을 의미합니다.
스코프 종류 | 설명 |
---|---|
Local | 함수 내부에서 선언, 함수 내에서만 접근 |
Enclosing | 중첩 함수의 외부 함수 영역 |
Global | 스크립트 전체, 함수 외부에서 선언 |
Built-in | 파이썬 내장 함수/변수(예: print, len) |
변수 탐색 순서는 Local → Enclosing → Global → Built-in 순서로 진행됩니다.
한줄 요약: 스코프는 변수의 접근/수정 가능 범위를 결정합니다!
📝전역변수·지역변수 선언과 사용법
전역변수와 지역변수는 어떻게 선언하고 사용할까요? 함수 밖에서 선언하면 전역변수, 함수 내에서 선언하면 지역변수로 동작합니다.
# 전역변수 x = 10 def foo(): y = 5 # 지역변수 print(x) # 전역변수 사용 가능 print(y) # 지역변수 사용 가능 foo() print(x) # 전역변수 접근 가능 print(y) # 오류! 지역변수는 함수 밖에서 사용 불가
- 전역변수는 함수 내외부 모두에서 읽기 가능
- 지역변수는 함수 내에서만 접근 가능
- 함수 내에서 같은 이름의 변수를 선언하면 지역변수가 우선
한줄 요약: 전역변수=함수 밖, 지역변수=함수 안에서 선언!
⚡global, nonlocal 키워드 활용법
함수 내부에서 전역변수를 수정하려면 어떻게 해야 할까요? global 키워드를 사용하면 함수 내부에서 전역변수를 수정할 수 있습니다.
x = 10 def change_x(): global x x = 20 # 전역변수 x의 값을 변경 change_x() print(x) # 20
- global: 함수 내부에서 전역변수 수정 시 사용
- nonlocal: 중첩 함수에서 외부(Enclosing) 함수의 변수 수정 시 사용
def outer(): a = 1 def inner(): nonlocal a a += 1 inner() print(a) # 2 outer()
global, nonlocal 키워드는 꼭 필요한 경우에만 사용하세요. 남용하면 코드의 가독성과 유지보수성이 떨어질 수 있습니다.
한줄 요약: global, nonlocal로 변수의 스코프를 확장할 수 있습니다!
💡실전 예제와 주의사항
실제 코드로 지역변수와 전역변수의 차이를 확인해봅시다.
# 전역변수와 지역변수의 이름이 같을 때 x = 100 def test(): x = 50 # 지역변수 print("함수 내부 x:", x) test() print("함수 외부 x:", x) # 출력: 함수 내부 x: 50 / 함수 외부 x: 100 # 함수 내부에서 전역변수 수정 y = 10 def modify(): global y y = 20 modify() print(y) # 20
- 지역변수는 함수가 끝나면 사라짐
- 전역변수는 프로그램이 끝날 때까지 유지
- 같은 이름의 변수라도 스코프가 다르면 서로 다른 변수
- 전역변수 남발 시 예기치 않은 버그 발생 위험
- 지역변수는 함수 내에서만, 전역변수는 전체에서 사용
- global, nonlocal 키워드로 변수 스코프 확장
- 전역변수 남발은 유지보수와 디버깅에 불리
한줄 요약: 스코프와 변수 선언 위치를 항상 명확히 구분하세요!
🏆핵심 요약 및 결론
- 지역변수는 함수 내에서만, 전역변수는 전체에서 사용
- global, nonlocal 키워드로 변수의 스코프를 확장할 수 있음
- 전역변수 남발은 버그와 유지보수 문제를 유발할 수 있음
도움이 되셨다면 공감♥ 눌러주세요!
파이썬 지역변수와 전역변수, 이제 완벽하게 이해하셨나요? 다음 글에서는 변수 스코프와 네임스페이스, 클로저 등 더 깊이 있는 주제를 다룰 예정입니다. 궁금한 점이나 추가 질문은 댓글로 남겨주세요! 구독과 알림 설정도 잊지 마세요.
#파이썬지역변수 #전역변수 #파이썬스코프 #global #nonlocal #파이썬기초 #코딩변수 #프로그래밍 #파이썬2025 #코딩학습
'IT silo' 카테고리의 다른 글
파이썬 딕셔너리 활용법 총정리: 실전 예제와 꿀팁까지 한눈에! (0) | 2025.06.29 |
---|---|
파이썬 재귀함수 구현 방법: 기초부터 실전까지 완벽 가이드 (1) | 2025.06.29 |
파이썬 매개변수와 인수 차이점: 헷갈림 없이 완벽 정리! (0) | 2025.06.28 |
파이썬 break continue 사용법 완전정복: 반복문 제어의 모든 것 (0) | 2025.06.28 |
파이썬 데코레이터 사용법 완전정복: 실전 예제와 활용 꿀팁 총정리! (0) | 2025.06.28 |