본문 바로가기
Programming/Python

[Python] 모듈 만들기 / 불러오기 import, from / if__name__ == "__main__":

by EunjiBest 2022. 3. 6.

[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))

 

if __name__ == "__main__"를 사용하면된다.
 
 
C\doit>python mod1.py처럼 직접 파일을 바로 실행했을 때에는 5,2가 출력되고
 
import mod1을 실행하면 아무 결과값도 출력하지 않기 때문에 모듈안의 함수를 자유롭게 이용할 수 있다.
 
 
 
클래스나 변수 등을 포함한 모듈

 

위에서는 모듈 안에 함수만 넣었는데

모듈 안에도 클래스나 변수 등 다양한 것을 넣을 수있다.

 

#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함수를 출력시킨다.

 

 

 

 

 

 

 

 

 

 

 

 

이 글은 '점프 투 파이썬' 책을 참고한 포스팅입니다.

반응형

댓글