..

Search

20) 모듈과 패키지

모듈과 패키지


모듈과 패키지

파이썬에서 모듈(module)이란 하나의 파이썬 파일(.py 파일)을 의미합니다.

또한 패키지(package)란 이러한 모듈들이 여러 개 모여있는 것을 가리킵니다.

여러 개의 파이썬 파일이 폴더에 따라 나뉘어 있는 하나의 큰 폴더를 생각하면 이해하기가 쉬울 것입니다.

 

파이썬이 지금처럼 많은 사용자들을 보유할 수 있었던 이유가 바로 모듈과 패키지 때문입니다.

다른 사람들이 만든 코드를 간단하게 사용할 수 있으며, 배포 또한 손쉽기 때문에 단시간에 크게 성장할 수 있었습니다.


모듈 사용법 1

파이썬에서 모듈을 사용하기 위해서는 우선 import 문을 사용하여 해당 모듈을 import 해야만 합니다.

이때 import 하고자 하는 모듈의 확장자는 제외하고 파일의 이름만을 import 키워드 뒤에 나열합니다.

예제

import classNmodule

 

hihi = classNmodule.Horse(5,160,'brown',0,10)

bow = classNmodule.Dog(5,100,'brown',10,10)

 

hihi.sound()

bow.sound()

실행 결과

Neigh

Bow-Wow

 

위의 예제는 classNmodule이라는 이름의 파이썬 파일을 import 하여 사용하는 예제입니다.

이처럼 모듈을 import 문을 사용하여 가져오게 되면 모듈의 모든 내용이 작성 중인 코드상에 그대로 옮겨진다고 생각하면 됩니다.

 

코드에서 모듈에 저장된 변수나 함수를 사용하려면 import 한 모듈의 이름을 적은 후 온점(.)을 찍고 나서 사용하고자 하는 변수나 함수의 이름을 적으면 됩니다.


모듈 사용법 2

예제

from classNmodule import *

 

hihi = Horse(5,160,'brown',0,10)

bow = Dog(5,100,'brown',10,10)

 

hihi.sound()

bow.sound()

실행 결과

Neigh

Bow-Wow

 

만약 모듈에 저장된 내용을 자주 사용해서 모듈의 이름이 너무 반복적으로 나올 경우에는 다음과 같이 사용할 수도 있습니다.

예제

from 모듈이름 import 함수명(클래스명)

 

위와 같은 문장을 이용하면 코드에서 필요한 함수만을 골라서 import 할 수 있는데, 이때 함수명 대신에 별표(*)를 사용하면 해당 모듈의 모든 함수들을 import 하겠다는 의미가 됩니다.

 

프로그래밍에서 별표(*)는 보통 모든 것(everything)을 의미합니다.

 

예제

from classNmodule import Horse

 

hihi = Horse(5,160,'brown',0,10)

bow = Dog(5,100,'brown',10,10)

 

hihi.sound()

bow.sound()

 

위의 예제와 같이 Horse 클래스만 import 하면 Dog 클래스는 import 되지 않았기 때문에 인터프리터가 Dog 클래스의 생성자를 찾을 수 없습니다.

따라서 bow 객체가 생성되지 못하므로 bow.sound() 함수의 실행 또한 불가능합니다.


연습문제