https://docs.python.org/3/tutorial/modules.html#packages
- 정의:
- 패키지는 디렉터리 구조로 만든 모듈 묶음이고, 점(.)으로 구분된 “도트 모듈 이름”을 쓴다(sound.effects.echo).
- 기본 구조:
- 디렉터리마다 __init__.py가 있으면 패키지로 인정된다(네임스페이스 패키지는 예외). sound/, sound/effects/처럼 계층을 만든다.
- 임포트 방법:
- import sound.effects.echo → 전체 경로로 접근(sound.effects.echo.echofilter(…)).
- from sound.effects import echo → 서브모듈을 현재 네임스페이스에 바인딩(echo.echofilter(…)).
- from sound.effects.echo import echofilter → 함수/변수를 바로 가져옴(echofilter(…)).
- 규칙:
- from package import item은 먼저 패키지 안의 이름을 찾고, 없으면 서브모듈/서브패키지를 로드 시도. 없으면 ImportError.
- import a.b.c 형식에서는 마지막을 제외한 각 단계가 반드시 패키지여야 하고, 마지막만 모듈/패키지일 수 있다(함수/클래스/변수는 안 됨).
- 역할:
- 모듈 이름 충돌을 방지하고, 계층 구조로 소스코드를 정리해 소속을 명확히 한다.