파이썬에서는 스크립트 파일과 모듈은 거의 동급이다. '.py' 라는 확장자를 붙인 파일의 최상위 블록에 클래스를 정의하면 모듈 속에 클래스를 정의할 수 있다. import문이나 from문을 사용하면 모듈에 정의되어 있는 클래스를 import 할 수 있다.
예를 들어 'bookmark.py'라는 파일에 Bookmark 클래스를 정의했다고 하면, 즉 bookmark 모듈에 Bookmark 클래스를 정의하는 것이다. 외부의 파일로부터는 아래와 같이 클래스를 import해서 이용할 수 있다.
# bookmark 모듈을 임포트 함
import bookmark
# Bookmark 클래스로부터 인스턴스를 만듦
b = bookmark.Bookmark("타이틀", "http://path.to/site")
from문을 사용하면 클래스를 좀 더 짧게 기술할 수 있다.
# Bookmark 클래스를 임포트 함
from bookmark import Bookmark
# Bookmark 클래스로부터 인스턴스를 만듦
b = Bookmark("타이틀", "http://path.to/site")
모듈의 계층 구조 (패키지)
파이썬에는 여러 모듈을 묶어서 관리하는 <패키지>라는 구조가 갖추어져 있다.
프로그램 규모가 좀 커지면 이용할 모듈의 수가 많아진다.
그와 같은 경우는 모듈이 하는 처리의 종류에 따라 모듈을 더 분류해서 패키지로 모아두면 편리하다.
Django와 Numpy와 같이, 파이썬에서 만들어진 대규모 프레임워크나 라이브러리에서는
이러한 패키지라는 구조를 사용해서 모듈을 관리하고 있다.
패키지를 사용하면 여러 모듈을 하나의 패키지 속에 모아둘 수 있다.
위 그림과 같은 구성의 패키지가 있는 경우 'modulea'를 import 하기 위해서 계층 구조를 '도트'로 구분해서 표기
import packagea.modulea
좀 더 짧게 작성하고 싶은 경우에는 from문을 사용
from packagea import mudulea
# funca 호출은 modulea.funca()로 할 수 있다.
서드파티 모듈을 사용하기
파이썬 배포판에 들어 있지 않은 모듈 (외부 라이브러리나 모듈) 을 찾는 방법
python.org 웹사이트에서는 <PyPI> (Python Package Index)라는 이름의 서비스를 제공하고 있다.
PyPI는 엄청난 수에 이르는 파이썬 모듈을 통합하기 위한 서비스이다.
'study > python' 카테고리의 다른 글
예외 처리 (0) | 2020.12.17 |
---|---|
표준 라이브러리사용 (0) | 2020.12.16 |
클래스 상속과 고급 객체 지향 기능 (0) | 2020.12.02 |
객체 지향 프로그래밍과 절차적 프로그래밍 (0) | 2020.12.02 |
PyQt5 : widget and layout (0) | 2020.11.26 |