본문 바로가기

Python

[Python] 파이썬에서 __init__.py 의 의미

반응형


파이썬 코드의 폴더 구조를 보다보면 __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가 발생하며 동작하지 않습니다.

반응형