파이썬에서는 globals()를 사용하면 전역 스코프(Global Scope)에 접근할 수 있습니다.
이를 활용하면 코드 실행 중에 동적으로 전역 변수를 생성할 수도 있습니다
1. 예제 코드
for i in range(1, 10):
for k in range(1, 10):
globals()['plus_{}_{}'.format(i, k)] = i + k
print(plus_5_2) # 출력: 7
동작 원리
- globals()는 현재 실행 환경의 전역 네임스페이스를 담고 있는 딕셔너리를 반환합니다.
- 따라서 globals()['plus_5_2'] = 7 같은 방식으로 값을 넣으면, 실제로 전역 변수 plus_5_2가 만들어집니다.
- 이후 print(plus_5_2)처럼 일반 변수처럼 사용할 수 있습니다.
2. 주의할 점
- 이렇게 전역 변수를 무분별하게 생성하면 코드의 가독성과 유지보수성이 떨어집니다.
- 동적으로 만들어진 변수가 어디서 생겼는지 추적하기 어렵고, 네임스페이스가 어지러워질 수 있습니다.
- 따라서 실제 개발에서는 전역 변수 대신 딕셔너리나 클래스로 관리하는 것이 훨씬 바람직합니다.
plus_dict = {}
for i in range(1, 10):
for k in range(1, 10):
plus_dict[(i, k)] = i + k
print(plus_dict[(5, 2)]) # 출력: 7
정리하면
- globals() → 전역 네임스페이스를 반환하는 내장 함수
- 이를 통해 동적으로 전역 변수를 생성/수정 가능
- 하지만 유지보수성 문제 때문에 실제 코드에서는 딕셔너리 구조 활용을 권장
'파이썬 > 기초 프로그래밍' 카테고리의 다른 글
| Python map 객체와 형 변환 (0) | 2025.09.13 |
|---|---|
| Python 익명 함수(lambda) vs 일반 함수(def) (0) | 2025.09.13 |
| Python에서 locals()로 함수의 로컬 영역 확인하기 (0) | 2025.09.13 |
| Python 함수 내 전역 변수(Global Variable) 사용하기 (0) | 2025.09.13 |
| Python 동시성 프로그래밍: concurrent.futures 실습 (0) | 2025.09.09 |