Python - 모듈
● 모듈
파이썬 확장자 .py로 만든 파이썬 파일은 모두 모듈이다.
- 모듈 만들기
# mod1.py
def add(a, b):
return a + b
def sub(a, b):
return a-b
위와 같이 add와 sub 함수만 있는 파일 mod1.py를 만들고 C:/pythonworks 에 저장
해당 mod1.py 파일이 모듈이다.
- 모듈 불러오기
import 모듈이름
import mod
** mod.py를 생성했다는 의미
** import 시 .py를 생략하고 mod만 써준다.
import mod1
print(mod1.add(3, 4)) # 7
print(mod1.sub(4, 2)) # 2
** mod1.py 파일에 있는 add, sub 함수를 사용하기 위해서는 mod1.add(파일명.함수명)처럼
모듈 이름 뒤 도트(,) 붙이고 함수명을 사용하면 된다.
import는 현재 디렉터리에 있는 파일이나 라이브러리가 저장된 디렉터리에 있는 모듈만 불러올 수 있다.
파이썬 라이브러리는 파이썬을 설치할 때 자동으로 설치되는 파이썬 모듈을 말한다.
- 모듈이름 없이 함수명만 사용하고 싶을 때는?
from 모듈이름 import 모듈함수
from mod1 import add, sub
fomr mod1 import *
- 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))
add(1, 4), sub(4 ,2) 결과를 출력하는 문장 추가 후 mod1.py 실행 시 아래와 같이 확인된다.

mod1.py 파일의 add, sub 함수만 사용하기 위해선 어떻게 해야할까?
# 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:/pythonworks mod1.py처럼 직접 파일을 실행헀을 때
if __name__== "__main__": 은 참이 되어 if문 다음 문장이 수행된다.
이와 반대로 대화형 인터프리터나 다른 파일에서 해당 모듈을 불러 사용할 때는
if __name__== "__main__": 거짓이 되어 if문이 수행되지 않는다.

※ __name__ 변수란?
파이썬의 __name__ 변수는 파이썬 내부적으로 사용하는 특별한 변수명이다.
c:/pythonworks mod1.py 처럼 mod1.py 파일을 실행할 경우
mod1.py의 __name__ 변수는 __main__ 값이 저장된다.
하지만 파이썬 셸이나 다른 파이썬 모듈에서 mod1을 import 할 경우에는
mod1.py의 __name__ 변수에 mod1.py의 모듈 이름인 mod1이 저장된다.
- 클래스나 변수 등을 포함한 모듈
# mod2.py
PI = 3.141592
class Math:
def solv(self, r):
return PI * (r ** 2)
def add(a, b):
return a+b

** mod2.PI 를 입력해소 mod2.py 파일에 있는 PI 변수의 값을 사용할 수 있다.

** mod2.py에 있는 Math클래스를 사용할 수 있다.

** mod2.py에 있는 add 함수 또한 사용이 가능하다.
- 다른 파일에서 모듈 불러오기
# modtest.py
import mod2
result = mod2.add(3, 4)
print(result)
** 다른 파이썬 파일에서도 import mod2 로 mod2 모듈을 불러와 사용할 수 있다.
** 단, modtest.py 파일과 mod2.py 파일이 동일한 디렉터리(c:/pythonworks)에 있어야 한다.