2017-01-16 7 views
1

'my_class'이라는 클래스가 'my_module'에 배치되었습니다. 그리고이 함수를 가져와야합니다. 나는 이런 식으로하려고 노력 :모듈에서 동적으로 클래스 가져 오기

import importlib 
result = importlib.import_module('my_module.my_class') 

그러나 그것은 말한다 :

ImportError: No module named 'my_module.my_class'; 'my_module' is not a package 

겠어요 - 볼 수 있듯이 모듈에서만 작동하지만 클래스는 처리 할 수 ​​없습니다. 어떻게해야합니까?

답변

3

my_module'my_class' 모듈을 포함하는 패키지가 될 것으로 예상됩니다.

cls = getattr(import_module('my_module'), 'my_class') 

는 또한, 그래, 그것은 단지 모듈을 작동합니까 : 당신이 더 일반적으로 클래스를 가져 오거나해야하는 경우 모듈을 가져온 후, 속성은 동적으로, 단지 getattr를 사용합니다. importlib.import_moduleimportlib.__import__ 내부 기능의 래퍼임을 기억하십시오. from과 결합 된 전체 import 문과 동일한 기능을 제공하지는 않지만 가져온 모듈에서 속성 조회를 수행합니다.