반응형
Python에서 지역 변수와 전역 변수는 **변수의 범위(Scope)**와 관련이 있습니다. 어떤 변수가 어디서 접근 가능한지 이해하려면 이 둘의 차이를 잘 알아야 합니다.
1. 지역 변수 (Local Variable)
- 정의: 함수 내부에서 선언된 변수입니다.
- 범위: 선언된 함수 내부에서만 유효하며, 함수가 끝나면 제거됩니다.
- 특징: 함수 외부에서는 접근할 수 없습니다.
def my_function():
x = 10 # 지역 변수
print(f"지역 변수 x: {x}")
my_function()
# print(x) # 에러 발생: x는 함수 외부에서 접근 불가
2. 전역 변수 (Global Variable)
- 정의: 함수 외부에서 선언된 변수입니다.
- 범위: 프로그램 전체에서 접근 가능하며, 모든 함수에서 사용할 수 있습니다.
- 특징: 함수 내부에서도 접근 가능하지만, 함수 내부에서 수정하려면 global 키워드를 사용해야 합니다.
x = 20 # 전역 변수
def my_function():
print(f"전역 변수 x: {x}")
my_function()
print(f"전역 변수 x: {x}") # 여전히 접근 가능
3. 전역 변수 수정
함수 내부에서 전역 변수를 수정하려면 global 키워드를 사용해야 합니다. 그렇지 않으면 Python은 내부에서 새 지역 변수를 생성한다고 간주합니다.
잘못된 예: 전역 변수 수정 시 오류
x = 20
def my_function():
x = x + 10 # UnboundLocalError 발생: 함수 내부에서는 지역 변수로 간주됨
print(x)
my_function()
올바른 예: global 키워드 사용
x = 20
def my_function():
global x # 전역 변수 사용 선언
x = x + 10
print(f"수정된 전역 변수 x: {x}")
my_function()
print(f"최종 전역 변수 x: {x}")
4. nonlocal 키워드
- 함수 내부의 **중첩 함수(nested function)**에서 사용됩니다.
- 중첩 함수에서 바로 바깥쪽 함수의 변수(로컬 범위)를 수정할 때 사용합니다.
def outer_function():
x = 10 # 바깥 함수의 지역 변수
def inner_function():
nonlocal x # 바깥 함수의 변수 x를 사용
x += 5
print(f"내부에서 수정된 x: {x}")
inner_function()
print(f"바깥 함수에서의 x: {x}")
outer_function()
요약
- 지역 변수: 함수 내부에서 선언, 함수 내부에서만 사용 가능.
- 전역 변수: 함수 외부에서 선언, 전체에서 사용 가능. 함수 내부에서 수정 시 global 필요.
- nonlocal: 중첩 함수에서 상위 함수의 지역 변수를 수정할 때 사용.
반응형
'Python > 파이썬 기초 강의(2024)★' 카테고리의 다른 글
파이썬, 터틀그래픽 사각형 그리기 모듈 (0) | 2024.11.24 |
---|---|
파이썬: 모듈 사용하기 (0) | 2024.11.23 |
파이썬: 사용자 정의 함수 (3) | 2024.11.20 |
파이썬: 문자열 함수 isdigit isalpha isalnum islower isupper isspace (0) | 2024.11.18 |
파이썬: 문자열 정렬 함수 별 삼각형 만들기 (0) | 2024.11.17 |