반응형
패키지 __init__.py 활용하기
- 아래 링크를 통해 패키지 활용법을 확인해주세요.
https://easyjwork.tistory.com/34
- __init__.py 파일은 파이썬 패키지의 초기화와 관련된 특별한 역할을 합니다.
- 패키지 디렉터리에 __init__.py 파일이 포함되어 있으면 해당 디렉터리가 패키지임을 파이썬에게 알려줍니다.
[다양한 용도]
1. 패키지 초기화 코드: __init__.py 파일에 초기화 코드를 작성할 수 있습니다.
- 이 코드는 패키지가 임포트될 때 실행됩니다.
# mypackage/__init__.py
print("mypackage is imported")
# 사용 예시
import mypackage
# 출력: mypackage is imported
2. 패키지 구성 요소 노출: __init__.py 파일을 사용하여 패키지에서 특정 모듈이나 함수, 클래스를 노출시킬 수 있습니다.
- 이를 통해 패키지 사용자가 더 간편하게 접근할 수 있도록 할 수 있습니다.
# mypackage/__init__.py
from .module1 import some_function
from .module2 import AnotherClass
__all__ = ["some_function", "AnotherClass"]
# 사용 예시
from mypackage import some_function, AnotherClass
3. 서브 패키지와 모듈 임포트: 패키지 내에서 서브 패키지와 모듈을 임포트하여 패키지 계층 구조를 설정할 수 있습니다.
# mypackage/__init__.py
from . import subpackage
# mypackage/subpackage/__init__.py
from .module3 import function_in_subpackage
# 사용 예시
from mypackage.subpackage import function_in_subpackage
4. 패키지 버전 정보 포함: 패키지의 버전 정보를 __init__.py 파일에 포함시켜 관리할 수 있습니다.
# mypackage/__init__.py
__version__ = "1.0.0"
# 사용 예시
import mypackage
print(mypackage.__version__)
# 출력: 1.0.0
5. 네임스페이스 패키지 지원: PEP 420에 따라 __init__.py 파일이 없어도 패키지를 네임스페이스 패키지로 사용할 수 있습니다.
- 그러나 하위 호환성과 명시성을 위해 여전히 __init__.py 파일을 포함시키는 것이 일반적입니다.
6. 예제
- 다음은 mypackage의 __init__.py 파일을 활용하여 여러 모듈을 노출시키는 예제입니다.
# mypackage/__init__.py
from .module1 import function1
from .module2 import function2, MyClass
__all__ = ["function1", "function2", "MyClass"]
- 이렇게 설정하면 패키지 사용자는 개별 모듈을 임포트하지 않고도 패키지의 주요 기능에 접근할 수 있습니다.
from mypackage import function1, function2, MyClass
function1()
function2()
obj = MyClass()
반응형
'개발 > Python' 카테고리의 다른 글
[파이썬, Python] if __name__ == "__main__": 총정리 (0) | 2024.07.12 |
---|---|
[파이썬, Python] 터미널 명령어 실행하기 (0) | 2024.07.12 |
[파이썬, Python] 패키지 활용법 총정리 (0) | 2024.07.11 |
[파이썬, Python] 매직 메서드(스페셜 메서드) 활용법 총정리 (0) | 2024.07.11 |
[파이썬, Python] 네이밍 방법 총정리 (0) | 2024.07.11 |