2016-11-08 2 views
1

이 질문은 duplicate으로 표시되었습니다. 그러나 duplicate 질문 모듈을 다루는 동안 내 질문에 모듈의 일부를 가져 오는 방법을 묻는 동안.모듈의 일부만 가져오고 그 부분을 문자열로 나열하십시오.

나는 from mymodule import myfunction을 사용하여 모듈의 특정 부분 import을 알 수 있습니다. 여러 가지를 가져 오려면 어떻게해야합니까? 문자열로 나열해야합니다. 예를 들어 :

import_things = ['thing1', 'thing2', 'thing2'] 
from mymodule import import_things 

나는 this question 물어 않았다,하지만 난 (있는 경우)뿐만 아니라 내 코드에 대한 위의 트릭을 사용해야 할 것 같습니다.

도움을 주시면 감사하겠습니다. 당신은 세계적으로 가져온 물건을 사용할 수 있도록하려면

답변

3
import importlib 

base_module = importlib.import_module('mymodule') 
imported_things = {thing: getattr(base_module, thing) for thing in import_things} 

imported_things['thing1']() # Function call 

, 다음을 수행하십시오

globals().update(imported_things) 
thing1() # function call 

가 수입을 제거하려면

del thing1 

또는

을 수행 할 수 있습니다
del globals()['thing1'] 

할 수있는 일은 reload 모듈

+0

패키지에서 모듈을 가져옵니다. 모듈에서 메서드와 클래스를 가져 오는 기능이 필요합니다. – flashburn

+0

@flashburn이 (가) 내 대답을 업데이트했습니다. – smac89

+0

또 다른 질문입니다. 어떻게 그들을 가져올 것인가? 그것을 할 수있는 방법이 있습니까? – flashburn