Python
3.3 지역변수, 전역변수
수현조
2024. 11. 29. 09:26
변수는 우리가 정보를 저장하는 **"이름표"**라고 생각하면 됩니다.
그런데 이 이름표가 어디서 유효한지, 즉 어디에서 쓸 수 있는지가 지역변수와 전역변수의 차이입니다.
1. 지역변수(Local Variable)란?
🏡 지역변수는 함수 안에서만 사용하는 개인 이름표!
- 함수 안에서 만들어진 변수입니다.
- 함수가 실행되는 동안에만 유효하고, 함수가 끝나면 사라집니다.
- 함수 밖에서는 볼 수도, 사용할 수도 없습니다.
📦 예를 들어:
def greet():
name = "Alice" # 지역변수
print(f"Hello, {name}") # 함수 안에서만 사용 가능
greet()
# print(name) # 오류! name은 함수 밖에서 사용할 수 없어요.
📝 쉽게 생각하면:
- 지역변수는 함수의 개인 메모장 같은 거예요. 함수가 끝나면 메모장도 없어져요!
2. 전역변수(Global Variable)란?
🌍 전역변수는 프로그램 어디서나 사용할 수 있는 공용 이름표!
- 함수 밖에서 만들어진 변수입니다.
- 프로그램이 실행되는 동안 계속 살아 있고, 함수 안에서도 사용할 수 있습니다.
📦 예를 들어:
greeting = "Hello" # 전역변수
def greet():
print(greeting) # 함수 안에서도 전역변수를 사용할 수 있어요!
greet()
print(greeting) # 함수 밖에서도 당연히 사용할 수 있어요.
📝 쉽게 생각하면:
- 전역변수는 공용 공책이에요. 프로그램 어디서든 꺼내 볼 수 있어요!
3. 전역변수를 함수 안에서 바꾸려면?
🚨 주의: 그냥 사용하면 안 됩니다!
- 함수 안에서 전역변수의 값을 바꾸려면, global 키워드를 써야 합니다.
- 그렇지 않으면 함수는 새로운 지역변수를 만들어 버립니다.
📦 예를 들어:
count = 0 # 전역변수
def increment():
global count # 전역변수를 수정하려면 global을 사용해야 해요.
count += 1
increment()
print(count) # 1
4. 지역변수와 전역변수 비교
📝 특징 지역변수 전역변수
만드는 위치 | 함수 안 | 함수 밖 |
사용 가능한 범위 | 함수 안에서만 | 프로그램 어디서나 |
생명 주기 | 함수 실행 중 | 프로그램 실행 중 |
함수 안에서 수정 | 자유롭게 수정 가능 | global 키워드가 필요 |
5. 더 쉽게 이해하기: 방과 도서관 비유
- 지역변수는 방 안에서만 쓸 수 있는 물건:
- 방 안(함수)에서만 보이고 사용할 수 있어요.
- 방 밖(함수 밖)에서는 보이지 않아요.
- 전역변수는 도서관에 있는 공용 책:
- 방 안에서도(함수 안에서도) 꺼내 볼 수 있고,
- 방 밖에서도(함수 밖에서도) 꺼내 볼 수 있어요.
6. 왜 지역변수와 전역변수를 나눌까?
- 지역변수:
- 함수를 실행할 때만 잠깐 필요한 정보라면 지역변수가 더 좋아요.
- 다른 함수에 영향을 주지 않으니까 안전해요!
- 전역변수:
- 여러 함수에서 공유해야 하는 정보라면 전역변수를 사용할 수 있어요.
- 하지만 너무 많이 쓰면 복잡해지고, 예상치 못한 오류가 생길 수 있어요.
7. 지역변수와 전역변수를 함께 사용하는 예제
📦 코드:
message = "전역 변수" # 전역변수
def change_message():
global message # 전역변수 수정
message = "지역에서 바꾼 전역 변수"
print("함수 내부:", message)
change_message()
print("함수 외부:", message)
💡 출력:
함수 내부: 지역에서 바꾼 전역 변수
함수 외부: 지역에서 바꾼 전역 변수
8. 정리
- 지역변수: 함수 내부에서만 사용하는 개인 이름표.
- 전역변수: 프로그램 전체에서 사용할 수 있는 공용 이름표.
- 전역변수를 함수에서 바꾸려면 global 키워드가 필요해요.