Python 패키지(packages)

Nicholas·2022년 4월 23일
0

Python

목록 보기
23/31
post-thumbnail

1. 패키지 개념

  • 패키지는 비슷한 모듈/클래스들의 집합체
  • 패키지는 별도의 디렉토리(폴더)로 관리한다.
  • 패키지는 중복되는 이름의 모듈/함수들 있더라도 안전하게 사용할 수 있다.

2. 패키지의 기본구조

  • 패키지의 기본구조는 모든패키지 디렉토리에 __init__.py 를 기본적으로 포함한 모듈파일들이 모여있다.
  • 패치지의 디렉토리들은 가장 위의 루트 디렉토리, 그 이하는 서브 디렉토리라고 한다.

3. 패키지 사용방법

  • 계층적으로 구조화 되어있는 디렉토리들을 관리 / 사용 방법은 도트(.)을 사용하여 관리한다.
  • 루트 디렉토리명.서브디렉토리명.서브의 서브디렉토리명 ... 식으로 호출 할 수 있다.
  • 이하 import, from, as 의 사용방법은 모듈의 사용방법과 동일하다
  • 다만 모듈에서 from는 모듈안의 함수를 불러오는 것이지만 패키지에서는 패키지안에 모듈을 불로는 의미로 사용된다.
  • import 루트 디렉토리명.서브 디렉토리명
  • from 루트 디렉토리명.서브 디렉토리명 import 서브 디렉토리 안에 있는 모듈명

4. __init__.py 용도

  • 패키지의 각 디렉토리에 init.py파일이 존재하지 않는다면 패키지로 인식하지 않는다.
  • 3.3버전이후에는 안써도되지만 이하버전의 호환성을 위해 사용한다
  • 각종 설정들을 닮아둔다.

4-1. 대표적인 설정 __all__

  • 일정패키지에 모듈이 여러개이고 많은 모듈이 필요할때 일일이 모듈명을 입력해서 import하기 힘들다
    이럴때 * 사용하여 모든 모듈들을 불러올 수 있다.
  • 다만 모든 패키지에서 *를 사용할땐 해당 패키지의 __init__ 파일에 불러올 모듈명을 입력해야되는 설정값을 넣어줘야 된다.
  • 설정방법 : init 파일 안에 내용으로
    __all__ = ['모듈명1','모듈명2','모듈명3','모듈명4', ... '모듈명n',]
    넣어주어 *을 사용하여 불러올때 __init__ 안에 설정되어있는 값들만 불러온다

5. relative 패키지

  • 상대경로를 활용해서 서브패키지가 아니라 형제 패키지의 모듈이 필요할때 사용
  • 사용방법 : ../(상위 디렉토리에서...)
  • 주의점 : 모듈안에서만 사용가능하다.
profile
WEB Developer

0개의 댓글