__init__.py 파일은 파이썬 패키지를 초기화하는 데 사용되는 특별한 파일입니다. 이 파일이 없으면 파이썬은 해당 디렉터리를 패키지로 인식하지 않습니다. __init__.py 파일은 비어 있을 수도 있고, 패키지 초기화 코드를 포함할 수도 있습니다.
여러 가지 목적으로 __init__.py 파일을 사용할 수 있습니다.
1. 패키지 초기화
__init__.py 파일은 패키지가 초기화될 때 한 번 실행되는 코드를 포함할 수 있습니다. 예를 들어, 패키지를 초기화할 때 필요한 설정이나 리소스를 로드하거나, 초기화 메시지를 출력할 수 있습니다.
# mypackage/__init__.py
print("Initializing mypackage")
# 다른 스크립트에서 패키지 사용
from mypackage import module1, module2
# 출력: Initializing mypackage
2. 패키지 수준의 변수, 함수, 클래스 정의
__init__.py 파일 안에서 변수, 함수, 클래스 등을 정의하여 패키지 수준에서 사용할 수 있습니다. 이렇게 하면 패키지를 불러올 때 이러한 항목들도 함께 사용할 수 있습니다.
# mypackage/__init__.py
PACKAGE_VARIABLE = 42
def package_function():
print("This is a function in the package.")
# 다른 스크립트에서 패키지 사용
from mypackage import PACKAGE_VARIABLE, package_function
print(PACKAGE_VARIABLE) # 출력: 42
package_function() # 출력: This is a function in the package.
3. 서브 패키지 초기화
서브 패키지에도 __init__.py 파일을 추가하여 초기화 코드를 실행할 수 있습니다. 이렇게 하면 서브 패키지도 초기화될 때 실행되는 코드를 가질 수 있습니다.
mypackage/
|-- __init__.py
|-- module1.py
|-- module2.py
|-- subpackage/
|-- __init__.py
|-- module3.py
|-- module4.py
# mypackage/subpackage/__init__.py
print("Initializing subpackage")
python
Copy code
# 다른 스크립트에서 서브 패키지 사용
from mypackage.subpackage import module3, module4
# 출력: Initializing subpackage
4. 패키지를 모듈처럼 사용
__init__.py 파일 내에서 클래스 또는 함수를 정의하여 패키지를 마치 모듈처럼 사용할 수 있습니다.
# mypackage/__init__.py
class PackageClass:
def __init__(self, value):
self.value = value
def display(self):
print(f"PackageClass value: {self.value}")
# 다른 스크립트에서 패키지 사용
from mypackage import PackageClass
obj = PackageClass(10)
obj.display() # 출력: PackageClass value: 10
이러한 방식으로 __init__.py 파일은 패키지와 관련된 여러 가지 작업을 수행할 수 있습니다.
With ChatGPT
'Python > 포스팅' 카테고리의 다른 글
파이썬 예외 처리 (0) | 2023.12.03 |
---|---|
파이썬 relative 패키지 (0) | 2023.12.03 |
파이썬 패키지 안의 함수 실행 (0) | 2023.12.03 |
파이썬 패키지 생성 (0) | 2023.12.03 |
파이썬 패키지 (0) | 2023.12.03 |