파이썬/기초 프로그래밍

Python globals()로 동적 전역 변수 만들기

Data Jun 2025. 9. 13. 10:28

파이썬에서는 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() → 전역 네임스페이스를 반환하는 내장 함수
  • 이를 통해 동적으로 전역 변수를 생성/수정 가능
  • 하지만 유지보수성 문제 때문에 실제 코드에서는 딕셔너리 구조 활용을 권장