웹 서비스 개발(FB,BE,SERVER,DB)/Python

8. 패키지(Packages)

Zoo_10th 2024. 1. 13.

1. 패키지(Packages)

코드의 안정성과 격리성을 높여준다.

모듈을 모아놓은 디렉토리(Directory) 또는 폴더(Folder)이다.

패키지는 이름 공간(namespace)을 제공하여 이름 충돌을 방지한다.

모듈의 이름이 서로 충돌하는 경우, 패키지를 사용하여 각 모듈을 별도의 이름 공간에 두어 서로의 영향을 받지 않도록 할 수 있다.

패키지는 보통 하위 디렉토리와 __init__. py 파일로 구성된다. 하위 디렉토리는 하위 패키지를 나타내고, __init__. 파일은 해당 디렉토리를 패키지로 인식하게 해주는 역할을 한다. 패키지 내부에는 모듈 파일들이 위치하며, 필요한 모듈을 import 하여 사용할 수 있다.

파이썬에서는 모듈과 패키지를 모두 라이브러리라고 표현한다. 라이브러리(Library)는 개념적인 표현이며, 모듈과 패키지는 물리적으로 존재한다.

패키지에 모듈이 들어있는 모습니다.

2. 패키지 불러오기

패키지 역시 from과 import를 사용하여 불러올 수 있다.

from 패키지명 import 모듈명
from 패키지명.모듈명 import 함수명

 

2-1. 모든 모듈 불러오기(__init__. py)

모든 모듈을 한꺼번에 부르기 위해 *(Asterik: 별표)를 import에 넣어주면 되는데, 그때 필요한 것이 __init__. py파일이다. __init__. py 안에는 기본적으로 패키지를 import 할 때 패키지 안에 내용을 불러오게 되면 패키지 안에 어떤 모듈을 사용할 것인지 같이 불러와야 한다. 패키지를 import 하고 모듈을 import 하지 않으면 패키지명.모듈명을 통해 해당 모듈을 사용하게 된다. 이런 불편함 없이 패키지안에 모든 내용을 import 하기 위해 __init__.py 파일 안에 사용할 모든 모듈명을 작성해주게 된다. 즉 __init__.py 파일은 패키지 내부의 어떤 모듈이 있는지 알려주는 파일이다. 모든 모듈을 정의할 때는 __all__이라는 변수를 지정하고 리스트 형태로 모듈명을 저장하면 된다.

 

주의할 점은 __init__.py 파일은 최상위 패키지뿐 아니라 모든 패키지에서 생성해야 한다. 즉 상위 패키지/하위패키지/최하위패키지가 있다면 3가지 패키지 안에 모두 각각의 __init__. py파일을 생성해주어야 한다.

__all__ = ['모듈명 1', '모듈명 2', ...]

 

728x90

'웹 서비스 개발(FB,BE,SERVER,DB) > Python' 카테고리의 다른 글

10. 정규표현식(Regual Expressions)  (0) 2024.01.14
9. 예외 처리(Exception Handling)  (0) 2024.01.13
7. 모듈(Module)  (2) 2024.01.13
6. 클래스(Class)  (1) 2024.01.10
5. 파이썬 활용  (0) 2024.01.10

댓글