SeouliteLab

파이썬의 모듈 다이내믹 로딩: importlib 모듈 활용법 본문

카테고리 없음

파이썬의 모듈 다이내믹 로딩: importlib 모듈 활용법

Seoulite Lab 2024. 4. 17. 08:44

파이썬의 importlib 모듈은 실행 중에 모듈을 동적으로 로드하고 관리하는 기능을 제공합니다. 이를 통해 프로그램이 실행될 때 필요한 모듈을 동적으로 로드하거나, 모듈의 이름을 문자열로 받아 해당 모듈을 로드하는 등의 작업을 수행할 수 있습니다. 이제 몇 가지 예제를 통해 importlib 모듈의 활용법을 알아보겠습니다.

예제 1: 모듈 동적 로딩

import importlib

# 동적으로 모듈 로드
math_module = importlib.import_module('math')

# 로드된 모듈 사용
print("pi 값:", math_module.pi)
print("sin(0):", math_module.sin(0))

이 예제에서는 importlib 모듈을 사용하여 math 모듈을 동적으로 로드하는 방법을 보여줍니다. import_module() 함수를 사용하여 문자열로 지정된 모듈을 로드하고, 로드된 모듈의 함수 및 변수를 사용합니다.

예제 2: 클래스 동적 로딩

import importlib

# 동적으로 모듈 로드
module_name = 'datetime'
datetime_module = importlib.import_module(module_name)

# 모듈 내 클래스 동적 로딩
class_name = 'datetime'
datetime_class = getattr(datetime_module, class_name)

# 클래스 인스턴스 생성
dt_instance = datetime_class.now()

# 현재 시간 출력
print("현재 시간:", dt_instance)

이 예제에서는 importlib 모듈을 사용하여 datetime 모듈의 클래스를 동적으로 로드하는 방법을 보여줍니다. import_module() 함수로 모듈을 로드한 후 getattr() 함수를 사용하여 클래스를 동적으로 로드하고, 클래스의 인스턴스를 생성합니다.

예제 3: 패키지 동적 로딩

import importlib

# 동적으로 패키지 로드
package_name = 'os.path'
os_path_package = importlib.import_module(package_name)

# 패키지 내 함수 동적 로딩
func_name = 'join'
join_func = getattr(os_path_package, func_name)

# 함수 호출
result = join_func('dir', 'file.txt')

# 결과 출력
print("결과:", result)

이 예제에서는 importlib 모듈을 사용하여 os.path 패키지의 함수를 동적으로 로드하는 방법을 보여줍니다. 패키지를 로드한 후 getattr() 함수를 사용하여 함수를 동적으로 로드하고, 해당 함수를 호출하여 결과를 출력합니다.