Python/포스팅

파이썬 init__.py 의 용도

짜집퍼박사(짜박) 2023. 12. 3. 13:08

__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