for 루프 안에서 파이썬 모듈 가져오기
네, 가능합니다. 파이썬에서는 for 루프 내부에서 모듈을 반복적으로 가져올(import) 수 있습니다. 핵심은 가져오고자 하는 모듈 이름들을 문자열 형태의 리스트로 준비한 다음, 표준 라이브러리인 importlib 모듈의 import_module() 함수를 사용하는 것입니다.
기본 사용 예제
>>> import importlib
>>> modnames = ["os", "sys", "math"]
>>> for lib in modnames:
... globals()[lib] = importlib.import_module(lib)
동작 원리 설명
위 코드가 작동하는 방식을 단계별로 살펴보면 다음과 같습니다.
1. globals() 함수: globals()는 현재 전역 네임스페이스(모듈 수준의 심볼 테이블)를 딕셔너리 형태로 반환합니다. 이 딕셔너리에 새로운 키와 값을 추가하면, 마치 일반적인 import 문으로 모듈을 가져온 것처럼 해당 이름으로 접근할 수 있게 됩니다.
2. 동적 할당: 루프가 실행되면서 각 모듈 이름(lib)을 키로 사용하고, importlib.import_module(lib)가 반환한 모듈 객체를 값으로 저장합니다.
3. 결과 확인: 루프가 끝난 후에는 다음과 같이 평소처럼 모듈을 사용할 수 있습니다.
>>> os.getcwd() # 정상적으로 동작함
>>> math.sqrt(16)
4.0
참고 사항
이 방식은 플러그인 시스템 구현이나 설정 파일에 따라 모듈을 유연하게 불러와야 하는 상황에서 유용합니다. 다만 코드 가독성과 정적 분석 도구의 활용을 고려하면, 가능한 한 일반적인 import 문을 사용하고 동적 임포트는 꼭 필요한 경우에만 사용하는 것이 좋습니다.