[Python] 모듈 만들기 / 불러오기 import, from / if__name__ == "__main__":
모듈이란?
함수나 변수 또는 클래스를 모아 놓은 파일.
다른 파이썬 프로그램에서 불러와 사용할 수 있도록 만들 파이썬 파일이다.
다른 훌륭한 개발자들이 만들어 놓은 모듈을 사용할 수도 있고, 공유할 수 있다.
공유된 모듈을 사용하면 내가 직접 개발을 하지 않아도
numpy, pandas, matplot 등 인공지능에서도 다양한 부분을 쉽게 처리할 수 있다.
모듈 만들기
#mod1.py
def add(a,b):
return a+b
def sub(a,b):
return a-b
위 코드는 add와 sub 함수만 있는 파일 mod1.py를 만들고 C:\doit 디렉토리에 저장한다.
이 mod1파일이 모듈이 된다.
만드는 법은 너무 간단하다.
모듈 불러오기
위에서 만든 mod1.py 모듈을 파이썬에서 불로오는 방법 알아보도록 하자.
먼저 명령 프롬포트 창을 열고
mod1.py를 저장한 디렉토리(C:\doit)로 이동하여 다음 대화형 인터프리터를 실행한다.
C:₩Users₩사용자명>cd C:₩doit #저장한 디렉토리 이동
C:₩doit>dir #doit디렉터리에 파일 있는지 확인
.
.
.
2022.03.03 오후 01.:51 32 mod1.py #mod1.py 모듈 있음
.
.
.
C:₩doit>python #대화형 인터프리터 실행
그럼 이제 간단한 문법으로 모듈을 불러올 준비가 되었다.
import 모듈이름
>>> import mod1
>>> print(mod1.add(3,4))
7
>>> print(mod1.sub(4,2))
2
import를 사용해서 이미 만들어 놓은 파이썬 모듈을 볼러올 수 있다.
mod1모듈의 함수를 불러와 프린트를 해보면 계산이 되는 것을 확인한다.
항상 import 모듈 이름,
모듈이름.함수 이름을 사용하는 것보다
모듈이름을 제외하고 함수 이름만 쓰고 싶은 경우
from 모듈이름 import 모듈 함수
위 문법을 사용하면 모듈 이름을 붙이지 않고 바로 해당 모듈의 함수를 사용할 수 있다.
from mod1 import add
add(3,4)
만약, add와 sub 함수를 둘다 사용하고 싶다면
from mod1 import add,sub
콤마로 구분하여 필요한 함수를 불러올 수 있다.
또 한가지 문법이 있는데 *을 붙이는 방법이다.
from mod1 import*
*은 파이썬에서 '모든 것'이라는 뜻이다.
따라서 위 코드는 mod1의 모든 함수를 불러오라는 뜻이 되겠다.
if__name__ == "__main__":
#mod1.py
def add(a,b):
return a+b
def sub(a,b):
return a-b
print(add(1,4))
print(sub(4,2))
위에서 만든 mod1모듈에
print문을 삽입해보았다.
>>> import mod1
5
2
그리고 import를 시켜보면,
print의 결과인 5,2가 나온다.
결과값 말고 그냥 함수만 사용하고 싶을 때 어떻게 해야할까?
#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))
클래스나 변수 등을 포함한 모듈
위에서는 모듈 안에 함수만 넣었는데
모듈 안에도 클래스나 변수 등 다양한 것을 넣을 수있다.
#mod2.py
PI = 3.141592
class Math:
def solv(self,r):
return PI * (r**2)
def add(a,b):
return a+b
위 코드는 PI라는 변수, Math라는 클래스, add라는 함수 모두 다 넣은 모듈이다.
모듈에서 클래스를 불러와 함수를 사용하는 법은
import mod2
a = mod2.Math()
print(a.solv(2))
mod2를 import시키고
a라는 변수에 mod2모듈 안 Math 클래스를 할당시켜준다.
Math 클래스 안에있는 solv함수를 출력시킨다.
이 글은 '점프 투 파이썬' 책을 참고한 포스팅입니다.
'Programming > Python' 카테고리의 다른 글
[Python] 파이썬 내장함수 모음 1탄 abs / all / any / chr / dir / divmod / enumerate / eval (12) | 2022.03.08 |
---|---|
[Python] 패키지(Packages) 만들기 / __init__.py / __all__ / 파이썬 relative 패키지 (13) | 2022.03.07 |
[Python] 클래스(Class) 1편 - 기본 개념 이해하기 / 사칙연산 계산기 클래스 만들기 (9) | 2022.03.04 |
[Python] 점프 투 파이썬 연습문제 풀이 4장 (15) | 2022.03.03 |
[Python] 리스트 내포 (List comprehension) (10) | 2022.03.02 |
댓글