Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 __import__() 함수 – 런타임 동적 모듈 임포트 방법

파이썬으로 프로그램을 작성하다 보면 현재 코드에서 다양한 모듈의 함수나 클래스 등을 활용해야 하는 경우가 많습니다. 이때 __import__() 함수를 사용하면 런타임에 모듈을 동적으로 가져올 수 있습니다. 일반적으로는 코드 상단에서 필요한 모듈을 미리 임포트하는 것이 좋지만, 특정 모듈을 몇 줄의 코드에서만 임시로 사용하거나, 모듈 내부의 객체를 복사한 후 수정하여 활용하고 싶은 경우에는 런타임 임포트가 유용할 수 있습니다.

문법

__import__() 함수의 기본 문법은 다음과 같습니다.

__import__(name, globals=None, locals=None, fromlist=(), level=0)

각 매개변수의 역할은 다음과 같습니다.

  • name − 임포트하려는 모듈의 이름
  • globals, locals − name 매개변수를 해석하는 방식을 결정
  • fromlist − 이름 기준으로 임포트할 객체나 서브모듈 목록
  • level − 절대 경로 임포트와 상대 경로 임포트 중 무엇을 사용할지 지정

예제

아래 예제에서는 datetime 모듈을 임포트한 뒤, 프로그램에서 필요로 하는 값으로 사용자 정의 객체를 만들어 활용합니다.

dttime = __import__('datetime', globals(), locals(), [], 0)
print(dttime.datetime.now())
# dttime의 복사본 생성
x = dttime.datetime.now()
# 원하는 형식으로 결과 출력
print(x.strftime("%d-%B"))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

2021-01-12 07:38:54.903330
12-January

주의 사항

__import__() 함수의 직접적인 사용은 공식적으로 권장되지 않습니다. 실행 효율을 높이려면 코드 시작 부분에서 필요한 모듈 전체를 한 번에 임포트하는 것이 더 좋습니다. 동적 임포트가 반드시 필요한 특수한 상황이 아니라면, 일반적인 import 문을 사용하는 것이 바람직합니다.