반응형
파이썬에서 전역변수(global variable)와 지역변수(local variable)의 차이는 다음과 같습니다:
1. 정의와 스코프
- 전역변수 (Global Variable)
- 정의: 함수 외부에서 선언된 변수입니다.
- 스코프: 프로그램 전체에서 접근할 수 있습니다. 즉, 모든 함수 및 블록 내에서 접근이 가능합니다.
- 지역변수 (Local Variable)
- 정의: 함수 내부에서 선언된 변수입니다.
- 스코프: 선언된 함수 내부에서만 접근할 수 있습니다. 함수가 끝나면 변수는 사라집니다.
2. 선언 위치
- 전역변수는 함수 외부에서 선언됩니다.
- 지역변수는 함수 내부에서 선언됩니다.
3. 변수 접근 및 수정
- 전역변수는 함수 내에서도 접근할 수 있지만, 수정하려면
global
키워드를 사용해야 합니다. - 지역변수는 함수 내에서만 접근하고 수정할 수 있습니다.
4. 예제 코드
# 전역변수 선언
x = 10
def my_function():
# 지역변수 선언
y = 5
print("지역변수 y:", y)
# 전역변수 x에 접근
print("전역변수 x:", x)
# 전역변수 x를 수정하려면 global 키워드 사용
global x
x = 20
print("수정된 전역변수 x:", x)
my_function()
print("함수 외부에서의 전역변수 x:", x)
# print(y) # 에러 발생: y는 지역변수이므로 함수 외부에서 접근 불가
위 코드의 출력은 다음과 같습니다:
지역변수 y: 5
전역변수 x: 10
수정된 전역변수 x: 20
함수 외부에서의 전역변수 x: 20
파이썬에서는 하나의 파일(모듈)에서 정의된 전역변수를 다른 파일(모듈)에서 사용할 수 있습니다. 이를 위해서는 변수가 정의된 모듈을 임포트(import)해야 합니다.
5. 다른 파일에 정의도니 전역변수를 공유하는 방법
아래 예제를 통해 두 개의 파일을 사용하여 전역변수를 공유하는 방법을 설명하겠습니다.
파일 1: config.py
이 파일에서는 전역변수를 정의합니다.
# config.py
global_variable = 42
파일 2: main.py
이 파일에서는 config.py
파일에서 정의한 전역변수를 사용합니다.
# main.py
import config
def print_global_variable():
print("전역변수의 값:", config.global_variable)
def modify_global_variable(new_value):
config.global_variable = new_value
print_global_variable() # 출력: 전역변수의 값: 42
modify_global_variable(100)
print_global_variable() # 출력: 전역변수의 값: 100
설명
- 임포트:
main.py
파일에서import config
를 사용하여config.py
모듈을 임포트합니다. - 변수 접근:
config.global_variable
을 통해config.py
에서 정의된 전역변수에 접근합니다. - 변수 수정:
modify_global_variable
함수에서config.global_variable
을 수정합니다.
이렇게 하면 config.py
에 정의된 전역변수를 main.py
에서 사용하고 수정할 수 있습니다. 이 방법을 사용하면 여러 파일에서 전역변수를 공유하여 코드의 모듈화를 할 수 있습니다.
주의 사항
- 임포트 순환 문제: 모듈이 서로를 임포트하려고 할 때 순환 임포트 문제가 발생할 수 있습니다. 이를 피하기 위해 구조를 잘 설계해야 합니다.
- 변수의 명시적 접근: 전역변수를 사용할 때는 모듈 이름을 명시적으로 사용하여 코드의 가독성을 높여야 합니다.
- 전역변수 남용 주의: 전역변수를 과도하게 사용하면 코드의 이해와 유지보수가 어려워질 수 있습니다. 가능하면 함수의 인자나 반환값을 사용하여 값을 전달하는 것이 좋습니다.
이와 같은 방법으로 다른 파일에 정의된 전역변수를 사용할 수 있습니다.
요약
- 전역변수는 프로그램 전체에서 접근 가능하며, 함수 외부에서 선언됩니다.
- 지역변수는 함수 내부에서만 유효하며, 함수 내부에서 선언됩니다.
- 함수 내에서 전역변수를 수정하려면
global
키워드를 사용해야 합니다.
이와 같은 개념을 이해하면, 변수의 스코프를 보다 명확히 관리할 수 있어 코드의 가독성과 유지보수성을 높일 수 있습니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] 들여쓰기를 위해서 공백 문자를 사용해야 하는 이유 (0) | 2024.06.06 |
---|---|
[ Python ] 변수를 미리 선언해서 초기화 하는 방법 (0) | 2024.06.06 |
[ Python ] 세트 사용하기 (0) | 2024.06.03 |
[ Python ] 딕셔너리 사용하기 (0) | 2024.06.03 |
[ Python ] 리스트 (List)와 튜플 (Tuple)의 차이 (1) | 2024.06.03 |