모듈(module)이란 여러 줄의 파이썬 코드를 담고 있는 파일로, 다른 파이썬 프로그램에서 참조하거나 사용할 수 있는 기본 단위입니다. 규모가 큰 파이썬 프로그램은 서로 다른 기능별로 여러 모듈에 나누어 구성하는 것이 좋습니다. 이렇게 하면 디버깅, 기능 개선, 패키징 등 프로그램 관리의 모든 측면에서 효율성이 크게 향상됩니다.
파이썬 프로그램에서 모듈을 사용하려면 먼저 해당 모듈을 가져와야(import) 합니다. 모듈을 가져오면 그 안에 정의된 모든 함수, 메서드 등을 새 프로그램에서 자유롭게 사용할 수 있습니다.
import 문으로 모듈 가져오기
먼저 특정 계산을 수행하는 코드가 담긴 profit.py라는 파일을 만들어 보겠습니다.
예제
def getprofit(cp, sp): result = ((sp-cp)/cp)*100 return result
이제 위에서 만든 함수를 다른 파이썬 프로그램에서 사용해 보겠습니다. 새 프로그램에서 import 문으로 해당 모듈을 불러온 뒤, 모듈 안의 getprofit 함수를 호출할 수 있습니다.
예제
import profit perc=profit.getprofit(350,500) print(perc)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
42.857142857142854
여기서 주목할 점은 함수를 호출할 때 모듈이름.함수이름 형태로 작성한다는 것입니다. 즉, 모듈 이름을 접두사처럼 붙여야 해당 모듈의 함수임을 명확히 알 수 있습니다.
from ... import 문으로 특정 항목만 가져오기
모듈 전체가 아니라 특정 함수나 값만 필요한 경우에는 from 모듈 import 항목 구문을 사용할 수 있습니다. 이렇게 하면 모듈 이름을 붙이지 않고도 해당 항목을 직접 사용할 수 있어 코드가 더 간결해집니다.
아래 예제에서는 math 모듈에서 원주율(pi) 값만 가져와 계산에 활용합니다.
예제
from math import pi x = 30*pi print(x)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
94.24777960769379
참고로 from math import *처럼 별표(*)를 사용하면 모듈의 모든 항목을 한 번에 가져올 수 있지만, 이름 충돌이나 가독성 문제가 생길 수 있으므로 필요한 항목만 선택적으로 가져오는 것이 권장됩니다.
모듈 탐색하기
파이썬에는 다양한 내장 모듈이 포함되어 있는데, 이들이 실제로 어디에 저장되어 있는지 확인하고 싶다면 sys 모듈의 path 속성을 활용하면 됩니다. 또한 특정 모듈에 어떤 함수와 속성이 들어 있는지 알아보려면 dir() 메서드를 사용하면 됩니다.
예제
import sys import math print(sys.path) print(dir(math))
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
[' ', 'C:\\Windows\\system32\\python38.zip', 'C:\\Python38\\DLLs', 'C:\\Python38\\lib', 'C:\\Python38', 'C:\\Python38\\lib\\site-packages'] ['…..log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod',….]
sys.path는 인터프리터가 모듈을 검색하는 디렉터리 목록을 보여주며, dir(math)는 math 모듈에서 제공하는 모든 함수와 상수의 이름 목록을 반환합니다. 이 두 가지 방법을 활용하면 표준 라이브러리뿐 아니라 설치된 외부 패키지의 구조도 손쉽게 파악할 수 있습니다.