[Python] __init__.py 파일의 역할

eslim·2020년 8월 24일
4

Python

목록 보기
11/12
post-thumbnail

1. init.py 이란

  • init.py란 폴더(디렉터리)가 패키지로 인식되도록 하는 역할도 하고, 이름 그대로 패키지를 초기화하는 역할을 한다. 즉, import로 패키지를 가져오면 init.py 파일이 실행되므로 이 파일에서 from . import 모듈 형식으로 현재 패키지에서 모듈을 가져오게 만들어야 한다.

    ※ 참고로 python3.3 버전부터는 init.py 파일이 없어도 패키지로 인식한다(PEP 420). 하지만 하위 버전 호환을 위해 init.py 파일을 생성하는 것이 안전한 방법이다.

1-1. all란?

  • 특정 디렉터리의 모듈을 *를 이용하여 import할 때에는 다음과 같이 해당 디렉터리의 init.py 파일에 all이라는 변수를 설정하고 import할 수 있는 모듈을 정의해 주어야 한다. all로 정의하지 않으면 인식되지 않는다.
# __init__.py
__all__ = ['echo']
  • 여기에서 all이 의미하는 것은 sound 디렉터리에서 * 기호를 사용하여 import할 경우 이곳에 정의된 echo 모듈만 import된다는 의미이다.

1-2. init.py 사용 예시

# app/a.py
from Module import test

# app/b.py
from Module import test
  • init.py 적용 : init.py 파일에 한번만 정의해 두면 해당 디렉토리에서 test라는 함수를 공통적으로 사용할 수 있습
# app/__init__.py
from Module import test

0개의 댓글