[Python] Package & __init__.py의 역할
해당 폴더가 Python Package 폴더인 것을 나타내기 위해서는 폴더 아래에 __init__.py
파일이 필요하다.
python3.3 버전 이상에선는 __init__.py
파일 없이 작성하여도 Package를 작성할 수 있는데, 이는 Namespace Package라 부른다. __init__.py
가 있는 Package는 Regular Package라 부른다.
말그대로 namespace를 공유해야하는 패키지는 Namespace Package를 이용하고, namespace를 중복허용을 원치 않을 때 Regular Package를 사용한다.
__init__.py
에는 __all__
이라는 변수를 입력할 수 있는데, 이는
from package import *
와 같이 *
를 이용하여 package에 있는 모든 module를 불러올때 import 되는 모듈을 설정할 수 있다.
└── package1
├── __init__.py
├── module1.py
├── module2.py
├── module3.py
├── module4.py
└── module5.py
# __init__.py
__all__ = ['module1', 'module2', 'module3']
위와 같이 __init__.py
를 세팅한다면, module4
를 활용하려 할 때 다음과 같은 에러가 발생한다.
from package import *
>>> module4.function()
NameError: name 'module4' is not defined
Author And Source
이 문제에 관하여([Python] Package & __init__.py의 역할), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dom9316/Python-Package-init.py의-역할저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)