Conditional Imports
3.19.13 조건부 임포트(Conditional Imports)¶
실행 시점에서 불필요한 모듈 임포트를 방지해야 하는 예외적인 상황에만 사용해야 합니다. 조건부 임포트는 권장되지 않으며, 최상위(top-level)에서 임포트하도록 리팩토링(refactoring)하는 것이 좋습니다.
타입 표기(annotation)에 필요한 임포트는 if TYPE_CHECKING:
블록 안에 작성합니다.
-
타입 표기 표현식이 실제로 평가되는 Python 3.6에 대한 상위 호환성을 보장하기 위해, 조건부 임포트의 대상이 되는 타입은 문자열로 참조되어야 합니다.
-
if TYPE_CHECKING:
블록 안에서는 오직 타입 명시를 위해서 사용되는 엔티티만 정의해야 하며, 여기에는 별칭(aliases)도 포함됩니다. 그렇지 않으면 런타임 에러를 일으키는데, 이는 여기에서 정의된 모듈이 실제 런타임에서는 임포트되지 않기 때문입니다. -
해당 블록은 모든 일반적인 임포트 다음에 위치해야 합니다.
-
타입 관련 임포트 목록 내에는 빈 줄이 없어야 합니다.
-
일반적인 임포트 목록처럼 정렬합니다.