일반적으로 python에서 모듈을 import할때 일반적으로 시작부분에 선언 후 코드를 작성한다.
그런데 모듈을 처음에 import하는게 아니라 상황에 맞게 동적으로 모듈을 import할 수 있다.
방법은 importlib 패키지를 사용하거나 __import__()함수를 사용하면 된다.
사실 둘의 차이는 별로 없다.
일단 importlib은 import구문(statement)을 수행하는 하나의 package일 뿐이며, __import__()함수는 import구문을 구성하는 expression이기 때문이다.
즉 __import__()함수는 importlib보다 low level로 호출하는 것 뿐이다.
importlib
import하고 싶은 module명을 module_name이라는 변수로 받았다고 하자.
이런 경우 importlib을 이용해 아래처럼 간단히 이용할 수 있다.
import importlib def load_module_func(module_name): mod = importlib.import_module(module_name) return mod
mod란 변수를 통해 module 안에 class를 호출하는 것이 가능하다.
__import__()
importlib 보다 좀 더 low level 로 __import__ 를 이용해서도 구현이 가능하다. 물론 이걸 사용하면, importlib 패키지 자체를 import 하는 과정은 생략해도 된다. __import__() 는 built-in 함수이기 때문에 그냥 사용하면 된다.
def load_module_func(module_name): mod = __import__('%s' %(module_name), fromlist=[module_name]) return mod
Ref. http://bluese05.tistory.com/31
'Language > python' 카테고리의 다른 글
python dictionary에서 한글 입력 (0) | 2018.06.05 |
---|---|
[python] z3 설치 (0) | 2018.02.10 |
[python] 단순 치환암호 복호화하기 (0) | 2017.11.18 |
[python] try, finally (0) | 2017.11.18 |
python 코드 잘 짜는 방법 (0) | 2017.08.21 |