[ python] 패키지(Package)

ljkgb·2021년 1월 29일
0

Python

목록 보기
10/20
post-thumbnail

1. 패키지

  • 모듈이 뭉쳐있는 폴더
  • 파이썬은 패키지로 분할 된 개별적인 모듈로 구성
  • ..: 부모 디렉토리
  • .: 현재 디렉토리(모듈 내부에서만 사용, 생략가능)

2. from

1) import로 가져올 경우

  • import
    import sub.sub1.module1
    import sub.sub2.moduld2
    서브패키지 하위에 서브1패기지 안에 모듈1을 임포트 -> 비효율적
  • 호출
    sub.sub2.module2.mod2_test1()

2) from절로 변경

  • from
    as를 이용해 m2라는 별명 생성(alias)
    from sub.sub1 import module1
    from sub.sub2 import module2 as m2
  • 호출
    module1.mod1_test1()
    m2.mod2_test1()

3) 모든 폴더 가져오기(메모리 문제로 비추천)

  • from
    * sub하위 패키지 모두 가져오기
    from sub.sub1 import *
  • 호출(호출은 from과 동일)
    module1.mod1_test1()

3. __init__.py

  • 파이썬 3.3 부터는 __init__.py 없어도 패키지로 인식
  • 단, 하위 호환(3.3 이하 버전 호환)을 위해 작성 추천

1) 패키지 표시

  • 파이썬에게 패키지라고 인식시켜주기위해 빈 __init__.py파일 만들어 줘야함

2) 파이썬이 import 할 때 __init__.py 파일 안에있는 파일먼저 확인

  • __init__.py 내부
    __all__ = ['module1', 'module2']

하위 폴더가 많을 경우 __init__.py 안에 __all__ = ['module1', 'module2']에서 리스트 형식으로 적혀있는 파일 이름만 모듈 사용 가능
✏️ 여기 적혀있지 않은 패키지 사용시 예외발생

profile
🐹

0개의 댓글