모듈이란, 함수나 변수 또는 클래스를 모아놓은 파일이다.
모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 한다.
모듈 만들기
아래와 같은 파일 mod1.py를 만들고 디렉터리에 저장하면, 이 mod1.py파일은 모듈이 된다.
즉, 파이썬 확장자 .py로 만든 파이썬 파일은 모두 모듈이다.
# mod1.py
def add(a, b):
return a + b
def sub(a, b):
return a-b
모듈 사용하기
모듈 mod1.py를 불러오기 위해서 import mod1를 입력해준다. (.py는 붙이지 않는다.) 또한 작성된 모듈과 작성 중인 파일은 동일한 디텍터리에 있어야한다.
여기서 import는 이미 만들어 놓은 파이썬 모듈을 사용할 수 있게 해주는 명령어이다.
import 모듈이름
위의 mod1.py 모듈에 있는 add함수를 사용하기 위해서는 아래 코드와 같이, mod1.add처럼 모듈 이름 뒤에 " . "(도트연산자)를 붙이고 함수 이름을 적으면 된다.
>>> import mod1
>>> print(mod1.add(3, 4))
7
>>> print(mod1.sub(4, 2))
2
때로는 mod1.add, mod1.sub 처럼 쓰지 않고 add, sub 처럼 모듈 이름없이 함수 이름만 사용하고 싶은 경우에는
"from 모듈 이름 import 모듈 함수"를 사용한다.
from 모듈 이름 import 모듈 함수
from mod1 import *는 mod1.py의 모든 함수(*)를 불러서 사용하겠다는 뜻이다.
if __name__ == "__main__": 의 의미
# mod1.py
def add(a, b):
return a+b
def sub(a, b):
return a-b
if __name__ == "__main__":
print(add(1, 4))
print(sub(4, 2))
if __name__ == "__main__": 을 사용하면 C:\doit>python mod1.py처럼 직접 이 파일을 실행했을 때, __name__ == "__mian__"이 참이 되어 if문 다음 문장이 수행된다. 반대로 대화형 인터프리터나 다른 파일에서 해당 모듈을 불러서 사용할 때는 __name__ == "__main__":이 거짓이 되어 if문 다음 문장이 수행되지 않는다.
클래스나 변수를 포함한 모듈
# mod2.py
PI = 3.141592
class Math:
def solv(self, r):
return PI * (r ** 2)
def add(a, b):
return a+b
위 코드에는 원의 넓이를 계산하는 Math 클래스와 두 값을 더하는 add 함수 그리고 원주율 PI 변수처럼 클래스, 함수, 변수를 포함한다.
>>> import mod2
>>> print(mod2.PI)
3.141592
위 코드처럼 mod2.PI를 입력해서 mod2.py 파일에 있는 PI 변수 값을 사용할 수 있다.
>>> a = mod2.Math()
>>> print(a.solv(2))
12.566368
위 코드처럼 mod2.py 파일에 있는 Math 클래스를 사용할 수 있다. 모듈 안에 있는 클래스를 사용하려면 " . "(도트연산자)로 클래스 이름 앞에 모듈 이름을 먼저 입력한다.
모듈을 불러오는 또 다른 방법
1. sys.path.append(모듈을 저장한 디렉터리) 사용하기
이전 글을 보면, 파이썬 모듈을 사용하기 위해서는 동일한 디렉터리에 있어야 했다. 하지만 또 다른 방법이 있다.
먼저, sys 모듈을 불러온다. 그리고 sys.path를 확인하면 아래와 같이 파이썬 라이브러리가 설치된 디렉터리를 리스트로 보여준다. 만약 파이썬 모듈이 위 디렉터리에 들어있다면 모듈이 저장된 디렉터리로 이동할 필요없이 바로 불러서 사용할 수 있다. 또는 sys.path에 sys.path.append(모듈을 저장한 디렉터리)를 이용해서 디렉터리를 추가한다.
import sys
sys.path.append("C:/doit/mymod")
print(sys.path)
['', 'C:\\Windows\\SYSTEM32\\python37.zip', 'c:\\Python37\\DLLs',
'c:\\Python37\\lib', 'c:\\Python37', 'c:\\Python37\\lib\\site-packages',
'C:/doit/mymod']
2. PYTHONPATH 환경 변수 사용하기
모듈을 불러와서 사용하는 또 다른 방법은 PYTHONPATH 환경 변수를 사용하는 것이다.
아래와 같이 set 명령어를 사용해 PYTHONPATH 환경 변수에 mod2.py 파일이 있는 디렉터리를 설정한다.
C:\doit>set PYTHONPATH=C:\doit\mymod
C:\doit>python
>>> import mod2
>>> print(mod2.add(3,4))
7
'Programming > Python' 카테고리의 다른 글
오류 예외 처리 기법 (0) | 2022.01.05 |
---|---|
__init__.py 의 용도 (0) | 2022.01.04 |
객체와 인스턴스의 차이 (0) | 2022.01.04 |
파일 읽고 쓰기 (0) | 2022.01.03 |
함수 (0) | 2022.01.03 |