안녕하세요 이번에 배워 볼 파이썬 내용은 모듈(module)입니다. 모듈의 개념은 이전에 배운 클래스(Class)와 비슷하나 module이 약간 더 큰 개념입니다. 클래스의 경우, 본인지 작성한 파일 내에서 class로 함수를 묶어 자유롭게 호출하여 그 함수를 사용할 수 있었습니다. 하지만 모듈은 다른 파일에서 사용했던 함수를 내가 작성하고 있는 파일로 호출하여 사용할 수 있습니다. 아직은 초보자는 많은 함수를 사용하지 않지만 나중에 본인이 직접 작성한 함수의 크기 클 경우 파일을 따로 만들어 작성을 하고 간단하게 함수를 호출하여 사용할 수 있습니다. 그럼 모듈의 개념을 확실히 알기 위해 다음의 예시를 보도록 하겠습니다.
참고로 이번 예제는 저번 포스팅에서 알려준 대로 repl.it이라는 웹상에서 파이썬을 실행하도록 하겠습니다. repl.it이 무엇인지 모르시는 분은 아래 링크를 참고하시길 바랍니다.
https://ericlab.tistory.com/55?category=814903
요즘 코로나 때문에 극장을 가는 걸 꺼리는데 극장 관련 예시를 들도록 하겠습니다. 우선 새 파일을 하나 만들고 이름을 theater_module이라고 하겠습니다. 그리고 극장 가격을 작성을 할 건데 보통 애매 금액이 10,000원, 조조할인은 6,000원, 군인 할인은 4,000원이라고 하겠습니다.
def price(people):
print("{0}명 가격은 {1}원 입니다".format(people,people*10000))
def price_morning(people):
print("{0}명 조조 할인 가격은 {1}원 입니다".format(people,people*6000))
def price_soldier(people):
print("{0}명 군인 할인 가격은 {1}원 입니다".format(people,people*4000))
다시 메인 파일로 돌아갑니다. 외부에 있는 모듈을 불러들이기 위해 import라는 명령어를 사용합니다. import 다음에 불러 읽을 파일의 제목을 알려주어야 합니다. theater_module이라고 했으므로 제목을 적고 함수를 불러와 사용하면 됩니다.
import theater_module
theater_module.price(3)
theater_module.price_morning(4)
theater_module.price_soldier(5)
소괄호 안에 있는 숫자는 사람 수이기 때문에 총금액이 나오는 것을 확인할 수 있습니다.
그런데 함수를 사용하려면 함수 앞에 theater_module을 작성해줘야 하는 것이 너무 귀찮습니다. 좀 더 간편하게 함수를 사용하려면 as를 이용해서 module의 이름을 원하는 명칭으로 재 설정할 수 있습니다. 저는 theater_module을 mv로 해보았습니다.
import theater_module as mv
mv.price(3)
mv.price_morning(4)
mv.price_soldier(5)
결과 값은 동일한 것으로 확인됩니다. 이처럼 module의 길이가 길면 다음과 같이 축약하여 함수를 호출할 수 있습니다. 다른 방법으로는 from을 사용해도 됩니다. from으로 파일을 불러와서 import로 함수를 가져오는 방법입니다.
from theater_module import *
price(3)
price_morning(4)
price_soldier(5)
이렇게 하면 theater_module의 모든 함수를 불러오는 것이 되므로 각 함수만 사용하면 바로 계산이 가능합니다.
만약에 module내의 특정한 함수만 불러오고 있으면 import * 대신에 import price, price_morning이라고 쓰면 언급한 함수만 가져와 사용을 하고 이외 다른 함수는 정의가 되지 않아 사용할 수 없게 됩니다.
'지식공학 > Python' 카테고리의 다른 글
설치가 필요없는 통합 개발 환경(repl.it) (0) | 2020.10.29 |
---|---|
Python 독학 기본편 #10 에러처리 (0) | 2020.10.21 |
Python 독학 기본편 #9 Class (feat. 어벤저스 공격!!) (0) | 2020.10.20 |
Python 독학 기본편 #8 텍스트파일 읽기/쓰기 (0) | 2020.10.18 |
Python 독학 기본편 #7 문장 나누기/문자 정렬하기 (0) | 2020.10.18 |
댓글