SeouliteLab

[Python/파이썬] 동적 import와 함수 호출 방법 본문

프로그래밍

[Python/파이썬] 동적 import와 함수 호출 방법

Seoulite Lab 2024. 3. 6. 10:16

파이썬에서는 모듈이나 함수를 동적으로(import 시점이 아닌 실행 중에) 불러와서 사용할 수 있습니다. 이를 통해 코드의 유연성을 높일 수 있고, 필요한 모듈이나 함수를 필요한 시점에만 로드하여 메모리를 절약할 수 있습니다. 이번 글에서는 파이썬에서 동적으로 모듈을 import하고 함수를 호출하는 방법에 대해 살펴보겠습니다.

1. importlib 모듈 사용하기

Python의 importlib 모듈을 사용하여 동적으로 모듈을 import할 수 있습니다. import_module() 함수를 사용하여 모듈을 동적으로 import하고, getattr() 함수를 사용하여 해당 모듈에서 함수를 동적으로 호출할 수 있습니다.

import importlib

# 모듈 동적으로 import
module = importlib.import_module('module_name')

# 함수 동적으로 호출
result = getattr(module, 'function_name')()

2. __import__() 함수 사용하기

Python의 내장 함수 __import__()를 사용하여 동적으로 모듈을 import할 수도 있습니다. 이 함수는 문자열로 된 모듈 이름을 받아 해당 모듈을 import합니다. 함수를 호출하는 방법은 동일합니다.

# 모듈 동적으로 import
module = __import__('module_name')

# 함수 동적으로 호출
result = getattr(module, 'function_name')()

3. exec() 함수 사용하기

exec() 함수를 사용하여 문자열로 된 파이썬 코드를 실행할 수 있습니다. 이를 활용하여 동적으로 모듈을 import하고 함수를 호출할 수 있습니다.

# 모듈 동적으로 import
exec('import module_name')

# 함수 동적으로 호출
result = eval('module_name.function_name()')

예제 코드:

importlib 모듈 사용하기

import importlib

# 모듈 동적으로 import
module = importlib.import_module('module_name')

# 함수 동적으로 호출
result = getattr(module, 'function_name')()

__import__() 함수 사용하기

# 모듈 동적으로 import
module = __import__('module_name')

# 함수 동적으로 호출
result = getattr(module, 'function_name')()

exec() 함수 사용하기

# 모듈 동적으로 import
exec('import module_name')

# 함수 동적으로 호출
result = eval('module_name.function_name()')