__init__.py 파일이란?
__init__.py 파일은 파이썬이 특정 디렉터리를 하나의 패키지(package)로 인식하도록 만드는 데 필수적인 파일입니다. 이 파일이 존재해야 파이썬은 해당 디렉터리를 단순한 폴더가 아닌 패키지로 취급합니다.
왜 __init__.py가 필요한가?
이 파일이 필요한 가장 큰 이유는 모듈 검색 경로(module search path)에서 문제를 예방하기 위함입니다. 예를 들어 string처럼 흔히 사용되는 이름을 가진 디렉터리가, 검색 경로상 뒤에 위치한 실제 유효한 모듈을 의도치 않게 가려버리는 상황을 막을 수 있습니다.
__init__.py의 기본 형태
가장 간단한 경우, __init__.py는 그저 빈 파일이면 충분합니다. 하지만 이 파일에는 다음과 같은 코드를 담을 수도 있습니다.
- 패키지가 임포트될 때 실행되는 초기화 코드
__all__변수를 통한 공개 모듈 목록 설정
예제 코드
from math import sin
from my_package import my_func위와 같이 __init__.py 파일에 코드를 작성하면, 패키지가 임포트되는 시점에 해당 파일에 정의된 함수들이 패키지의 모듈에서 바로 사용할 수 있게 됩니다. 이를 통해 사용자는 패키지를 더욱 편리하게 활용할 수 있습니다.
더 알아보기
__init__.py에 대해 더 깊이 있는 내용을 원한다면 Mike Grouchy의 블로그 글 "Be Pythonic: __init__.py"를 참고해 보시기 바랍니다.