__init__.py
2017. 7. 24. 16:01ㆍIT관련
반응형
깃허브 같은 곳에서 Python 모듈을 보면 "__init__.py"라는 파일을 보게 된다.
"__init__.py"은 package initialization file(패키지 초기화 파일)이라고 부르며 이 파일이 있다는 것은 Python system에 해당 디렉토리가 패키지라는 것을 의미한다.
반대로 생각하면 "__init__.py"가 없다면 Python은 해당 디렉터리의 모듈을 가져오지 못한다.
module 디렉토리에 "__init__.py"가 없는 경우
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import module.stats
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named module.stats
하지만 Python 3.3부터는 "__init__.py"가 없어도 패키지로 인식한다. 하지만 Python의 하위 호환을 위해서라도 유지하는 것이 필요하다.
Package initialization file의 의미
대부분의 "__init__.py"는 내용이 없다.
하지만 모듈이 처음 로드 될 때 패키지 수준의 변수 정의도 가능하다.
이 파일에 정의된 변수는 패키지내 모든 모듈이 공통으로 사용할 수 있다.
반응형
'IT관련' 카테고리의 다른 글
Tkinter로 만드는 스마트카드 통신 프로그램 - 1 (2) | 2017.07.26 |
---|---|
Windows에 pyscard 1.9.5 설치 (0) | 2017.07.25 |
SBH56 간단 사용기 (8) | 2017.07.20 |
Tkinter를 이용한 Python GUI Programming - 2 (5) | 2017.07.11 |
Tkinter를 이용한 Python GUI Programming - 1 (0) | 2017.06.14 |