본문 바로가기

파이썬/파이썬 개념

[Python] init 파일, init 파일임포트, init 파일에서의 변수정의 / 2021.07.25

1. __init__파일이란?
__init__파일이란 "이 폴더는 파이썬 패키지"라는 것을 나타내 주는 파일이다.
파이썬 3.3ver 이전에는 init파일이 필수였지만 이후에는 필수가 아니나 하위 버전과의 호환성과 패키지의 명확성을 위해 항상 패키지안에 init파일을 만드는 것을 권장한다.
init은 초기화라는 뜻의 initalize를 줄인 말이다. 패키지나 패키지 안의 것들을 임포트 하면 init파일이 가장 먼저 실행된다.

2. __init__파일 임포트 하기
패키지를 임포트하면 패키지 안에 있는 내용은 임포트 되지 않는다. 패키지를 임포트 할 때 패키지안에 있는 내용들도 임포트 하고 싶다면 init파일을 활용하면 된다.

(1) from <package> import <module(s)>

__init__.py

이제 run파일에서 shapes패키지를 임포트하면 area모듈과 volume모듈에 접근할 수 있다.

run.py

(2) from <package.module> import <function(def)>

__init__.py

shapes패키지 안에서 함수들을 직접 가져왔기 때문에 run파일에서 모듈을 건너뛰고 접근할 수 있다.

run.py

* init파일에서 임포트되는 것은 항상 package.으로 접근할 수 있다.

3. __init__파일에서 변수 정의하기

상수값 PI는 area모듈과 volume모듈 두 곳 모두에서 사용된다.
PI처럼 패키지안에있는 여러 모듈이 필요로 하는 것은 패키지안에서 한 번만 정의해 주는 것이 좋다.
PI를 패키지안에서 한번만 정의해주려면 init파일에서 정의하면 된다.

__init__.py

그리고 패키지 안에 있는 모듈에서 PI를 임포트 하면 된다.

area.py
volume.py

* 패키지의 init파일에서 정의되는 것들은 패키지 밖에서도 사용 가능하다.
run.py :

1
2
3
4
5
6
7
8
# PI 직접 임포트
from shapes import PI
 
# 패키지 임포트 후 shapes. 로 접근
import shapes
print(shapes.PI)
 
 
cs