본문 바로가기

Python

[Python] __init__.py 파일에 대해 알아보자.

패키지(Package)는 Python 모듈이 어떤 계층을 가지고 모여있는 모듈의 집합입니다. 하나의 패키지 안에는 여러 개의 모듈이 들어있고, 각 모듈은 하나의 .py 파일입니다. `A`라는 패키지 안에 들어있는 모듈 `B.py`를 가리킬 때 `A.B`로 나타낸다.

1. 패키지 존재 여부 알림

__init__.py 파일은 해당 디렉터리가 패키지의 일부임을 알려 주는 역할을 한다.
만약 패키지에 포함된 디렉토리에 __init__.py 파일이 없다면 패키지로 인식하지 않는다.

python3.3 버젼부터 파일이 없어도 인식하나, 하위버젼 호환을 위해 파일을 생성하는 것을 권장한다

2. 패키지 수준에서의 변수와 함수 정의

__init__.py 파일은 패키지와 관련된 설정이나 초기화 코드를 포함할 수 있다.

3. 패키지 초기화

처음 패키지를 불러올 때, 실행되어야하는 코드를 실행할 수 있다.
예를 들어 데이터베이스 연결이나, 설정 파일 로드와 같은 작업을 수행할 수 있다.

단, 초기화 코드는 한 번 실행된 후에는 다시 import를 수행하더라도 실행되지 않는다. 예를 들어 다음과 같이 game 패키지를 import한 후에 하위 모듈을 다시 import 하더라도 초기화 코드는 처음 한 번만 실행된다.

import game
from game.graphic.render import render_test