__init __.py

디렉토리를 패키지로 선언

가장 기본적인 역할은 해당 폴더가 단순히 파일들이 모여 있는 곳이 아니라, 파이썬 모듈들을 포함한 패키지임을 인터프리터에게 알리는 것이다. 이 파일이 있어야 다른 파일에서 import 패키지명 형식을 사용할 수 있다.

패키지 초기화 코드 실행

패키지가 처음 임포트될 때 init.py 안에 작성된 코드가 자동으로 실행된다. 이로써 패키지 수준의 초기화 작업을 돕는다.

import 경로 간소화

import 경로를 간소화하는 효과도 볼 수 있는데,

  • 설정 전: from my_package.sub_folder.module import my_function
  • 설정 후: init.py에서 미리 from .sub_folder.module import my_function을 해두면, 사용자는 from my_package import my_function만으로 호출이 가능

처럼 초기화 파일을 구성하여 패키지 구조를 섬세하게 알지 못해도 특정 모듈을 편리하게 import하게 돕는다.

__all __ 변수를 이용한 공개 범위 설정

from package import *를 사용할 때 어떤 모듈을 가져올지 정의할 수 있다.

__all__ = ['module1', 'module2']  # module3은 * 로 임포트되지 않음