
모듈(Module)이란 클래스, 함수 또는 변수를 모아 놓은 파일입니다. 우리가 파이썬 코딩을 무사히? 마치고 *.py로 저장하게 되는데 이 모든 *.py 파일이 바로 모듈입니다. 기존에 작성했던 파이썬 파일내 함수나 클래스를 다른 프로그램 코딩 때 import명령어로 호출하여 사용할 수 있도록 합니다.
다음과 같은 module_test.py를 작성하여 저장합니다.
# Module_Test.py
def add(a,b):
return a+b
def sub(a,b)
return a-b
Module_Test.py가 저장된 디렉토리에서 파이썬을 실행하여 프롬프트를 띄워봅니다.

import 명령어로 Module_Test.py에서 작성된 함수 add, sub를 호출하여 사용했습니다.
import 모듈이름
import로 모듈을 호출한 후 함수를 아래와 같은 문법으로 사용합니다.
모듈명.함수명
ex) module_test.add 처럼 dot( . ) 연산자를 사용합니다.
상기 예와 같이 모듈 내 모든 함수를 불러올 수도 있고, 특정 함수만 불러올 수도 있습니다.
>>> for module_test import add, sub
>>> add(1,2)
>>> 3
>>> sub(2,1)
>>> 1
만약 수십개 또는 수백개의 함수가 들어있는 특정 모듈에서 한 두가지의 함수만 필요로 할 때 위와 같이 사용하며, 함수를 사용할 때 모듈명을 넣지 않습니다.
>>> from module_test import *
module_test 모듈의 모든 함수를 호출하겠다는 의미입니다.( * = 모든 것! )

module_test.py 에 print문을 추가 하여 실행하고 결과를 확인 합니다. 그리고 Python을 실행 후 프롬프트에서 import module_test 해 보면 의도치 않게 print문까지 실행되어 3, 1을 출력합니다. 함수만 불러오고 싶은데 print까지 실행되면 안되겠죠?
module_test.py에 if __name__ == ‘__main__’: 추가, 저장 그리고 실행 해 봅니다. __name__변수는 파이썬이 내부적으로 사용하는 특별 변수명 입니다.

module_test에서 실행 될 때는 __name__변수에 ‘__main__’이 저장되어 if조건이 참(True)이 되며 print가 실행되지만, import 하게 되면 __name__변수에 ‘module_test.py’가 입력되며 if조건이 False가 되어 print가 실행되지 않습니다.
함수뿐만 아니라 변수 또는 클래스도 import 할 수 있습니다. 우선 PI변수를 지정하고 원넓이를 계산하는 Math()클래스와 solv() 메서드(클래서 내 함수)를 작성하여 저장합니다.

>>> import module_test
>>> print(module_test.PI)
3.14
>>> print(module_test.Math().solv(2))
12.56
>>> a = module_test.Math()
>>> print(a.solv(2))
12.56
모듈안에 있는 클래스를 사용하려면 dot( . ) 연산자로 클래스이름 앞에 모듈이름을 입력하면 됩니다.
(VS Code에서 주석처리 하고 싶은 행을 클릭 & 드래그 후 Ctrl + / 하게 되면 '#'이 붙습니다. 주석해제 할 때도 동일방법을 사용합니다.)

Test.py에서 module_test.py를 import하여 함수를 사용해 봅니다. 문제없이 실행되는 것을 알 수 있습니다.
지금까지 함수(function), 클래스 (class), 모듈(module)까지 알아봤습니다.
'코딩 이야기 > 파이썬(Python)' 카테고리의 다른 글
단도직입 파이썬(Python) – 예외 처리(Exception Handling) (0) | 2021.12.16 |
---|---|
단도직입 파이썬(Python) – 패키지(Package) (0) | 2021.12.16 |
단도직입 파이썬(Python) – 클래스(class) (0) | 2021.12.16 |
단도직입 파이썬(Python) – 입출력(input, print) (0) | 2021.12.16 |
단도직입 파이썬(Python) – 함수 function (0) | 2021.12.15 |
댓글