Wisdom’s Cloud

[PYTHON] 8. 모듈 본문

PYTHON

[PYTHON] 8. 모듈

지혜로운지혜쓰 2021. 2. 24. 16:12
모듈
  • 모듈이란 함수나 변수 또는 클래스를 모아 놓은 파일을 말하며, 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 할 수 있다.

  • 우리는 파이썬으로 프로그래밍을 할 때 굉장히 많은 모듈을 사용하며, 다른 사람들이 이미 만들어 놓은 모듈을 사용할 수도 있고, 우리가 직접 만들어서 사용할 수도 있다.

 

 

  • 모듈 만들기

# mod1.py
def add(a, b):
   return a + b
   
def sub(a, b):
   return a - b

 

  • 모듈 불러오기

명령 프롬프트 창을 열고 mod1.py를 저장한 디렉터리로 이동한 다음 대화형 인터프리터를 위와 같이 실행한다.

# import는 이미 만들어 놓은 파이썬 모듈을 사용할 수 있게 해주는 명령으로,
# 현재 디렉터리에 있는 파일이나 파이썬 라이브러리가 저장된 디렉터리에 있는 모듈만 불러올 수 있다.
# import의 사용 방법은 .py 확장자를 제거한 'import 모듈 이름'이며,
# mod1.py 파일에 있는 add 함수를 사용하기 위해서는 모듈 이름 뒤에 '.'를 붙이고 함수 이름을 쓰면 된다.
>>> import mod1
>>> print(mod1.add(3, 4))
7
>>> print(mod1.sub(4, 2))
2

# 모듈 이름 없이 함수 이름만 쓰고 싶을 경우에는 'from 모듈 이름 import 모듈 함수'를 사용하면 된다.
>>> from mod1 import add
>>> add(3, 4)
7
# mod1.py 파일의 add 함수와 sub 함수 사용 가능
>>> from mod1 import add, sub
# mod1.py 파일의 모든 함수 사용 가능
>>> from mod1 import *

 

  • if __name__ == "__main__":의 의미

# mod1.py 파일에 add(1, 4)와 sub(4, 2)의 결과를 출력하는 문장을 추가해 보자.
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 == "__main__"이 참이 되어 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 변수처럼
# 클래스, 함수, 변수 등을 모두 포함하고 있다.

명령 프롬프트 창을 열고 mod2.py를 저장한 디렉터리로 이동한 다음 대화형 인터프리터를 위와 같이 실행한다.

 

  • 다른 파일에서 모듈 불러오기

# modtest.py
import mod2
result = mod2.add(3, 4)
print(result)
# 조금 전에 만든 모듈인 mod2.py 파일을 이 파일에 불러와 사용할 수 있으며,
# 정상적으로 실행되기 위해서는 modtest.py 파일과 mod2.py 파일이 동일한 디렉터리에 있어야 한다.

'PYTHON' 카테고리의 다른 글

[PYTHON] 10. 예외 처리  (0) 2021.02.24
[PYTHON] 9. 패키지  (0) 2021.02.24
[PYTHON] 7. 클래스  (0) 2021.02.24
[PYTHON] 6. 파일 읽고 쓰기  (0) 2021.02.16
[PYTHON] 5. 사용자 입력과 출력  (0) 2021.02.16