반응형
파이썬 코드의 폴더 구조를 보다보면 __init__.py 라는 파일이 굉장히 많이 보입니다. 특히 패키지 구조에서 많이 보이는데요. 패키지에서 __init__.py는 특별한 기능을 합니다.
__init__.py 기능
파이썬에서 패키지를 읽어들일 때 가장 먼저 __init__.py 파일을 읽어 옵니다. 그래서 패키지와 관련된 초기화 처리를 이 부분에서 수행합니다.
그 중 __all__ 이라는 기능을 알아두실 필요가 있는데요. 특정 디렉터리의 모듈을 *로 한꺼번에 import 할때에는 __init__.py에 all이라는 리스트를 설정해주어야 합니다.
# __init__.py
__all__= ["first_module", "second_module"]
print("test_package 폴더의 모듈을 모두 읽어들였습니다.")
이렇게 하면 main에서
from test_package import *
print(first_module.a)
print(first_module.b)
모든 모듈이 import 된 것을 확인할 수 있습니다. 만약 all로 이 부분을 정의하지 않으면 NameError가 발생하며 동작하지 않습니다.
반응형
'Python' 카테고리의 다른 글
[python] 파이썬 스크립트 실행 시간 측정 (0) | 2019.12.24 |
---|---|
[Python] 파이썬으로 mysql 데이터베이스 접근하기 (pymysql 사용법) (0) | 2019.12.18 |
[Python] 파이썬에서 if __name__ == "__main__" 의 의미 (0) | 2019.11.25 |
[Python] 파이썬 라이브러리와 프레임워크의 차이 (0) | 2019.11.25 |
[Python] 파이썬 데코레이터 (decorator) (0) | 2019.11.25 |