Python/Python__works

python dynamic import

말하는감자 2019. 5. 3. 19:24

한 프로젝트의 서비스 내부에 여러개의 모듈이 존재할때 가내수공업을 피하는 방법

#flask_test_project 안의 test 폴더 안의 module들이 여러개 존재하고, 
#각 모듈별로 메서드들이 있을때 동적 임포팅 하는 방법

#동적인 모듈을 생성해준다
def make_modules(module_name):
	
	# 모듈 이름 별로 dynamic import 해준다
	command_module = __import__("프로젝트이름.모듈폴더.%s" % module_name, fromlist=["프로젝트이름.모듈폴더.%s"])
	
	# 모듈을 리턴해준다
	return command_module
	

def get_modules(module_name):
	
	#모듈을 리턴 받는다
	command_module = make_modules(module_name)
	
    #동적으로 생성된 모듈에 접근
	load_func = getattr(command_module, 클래스나 메서드이름)
	
	리턴값 = load_func(파라미터)
	
	return 최종리턴값

'Python > Python__works' 카테고리의 다른 글

여백삭제, 유니코드출력  (0) 2019.05.13
리스트 초기화  (0) 2019.05.09
virtualenv  (0) 2019.03.20
PyYAML 설치 오류시 설치 방법  (0) 2019.03.20
python - slack 채널 연동하기  (0) 2019.01.14