Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 패키지 완벽 이해하기: 디렉터리 구조부터 __init__.py 활용까지

Python 패키지란 무엇인가?

패키지(Package)는 모듈과 하위 패키지, 그리고 그 아래의 패키지까지 포함하여 하나의 Python 애플리케이션 환경을 정의하는 계층적인 파일 디렉터리 구조입니다. 패키지를 활용하면 관련된 모듈들을 체계적으로 묶을 수 있어 코드의 재사용성과 유지보수성이 크게 향상됩니다.

패키지 예제: Phone 디렉터리

예를 들어 Phone 디렉터리 안에 Pots.py 파일이 있다고 가정해 보겠습니다. 이 파일에는 다음과 같은 소스 코드가 작성되어 있습니다.

#!/usr/bin/python

def Pots():
    print("I'm Pots Phone")

같은 방식으로 서로 다른 기능을 담당하는 두 개의 파일을 추가로 만들 수 있습니다.

  • Phone/Isdn.pyIsdn() 함수 포함
  • Phone/G3.pyG3() 함수 포함

__init__.py 파일의 역할

이제 Phone 디렉터리 안에 __init__.py 파일을 하나 더 생성합니다. 이 파일은 해당 디렉터리가 단순한 폴더가 아니라 Python 패키지임을 알려주는 중요한 역할을 합니다.

  • Phone/__init__.py

Phone 패키지를 임포트하는 즉시 모든 함수를 사용할 수 있도록 하려면, __init__.py에 다음과 같이 명시적인 import 문을 작성해야 합니다.

from Pots import Pots
from Isdn import Isdn
from G3 import G3

위 코드를 __init__.py에 추가하면, Phone 패키지를 임포트하는 순간 세 가지 함수를 모두 곧바로 사용할 수 있습니다.

#!/usr/bin/python
# 이제 Phone 패키지를 임포트합니다.
import Phone

Phone.Pots()
Phone.Isdn()
Phone.G3()

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

I'm Pots Phone
I'm 3G Phone
I'm ISDN Phone

정리 및 확장

위 예제에서는 각 파일에 하나의 함수만 담았지만, 실제로는 한 파일 안에 여러 개의 함수를 정의할 수 있습니다. 나아가 파일 내에 다양한 Python 클래스를 정의하고, 그 클래스들을 기반으로 패키지를 구성하는 것도 가능합니다. 이처럼 패키지를 체계적으로 설계하면 대규모 프로젝트에서도 코드를 깔끔하게 관리하고 협업 효율을 높일 수 있습니다.